首页 > 解决方案 > BasicHttpBinding 未使用默认配置

问题描述

我有一个在 ASP.NET 4.0 上运行的 Web 服务,并在 web.config 中为 BasicHttpBinding 定义了默认绑定配置:

<system.serviceModel>
...
 <bindings>
  <basicHttpBinding>
   <binding maxReceivedMessageSize="1024000" maxBufferSize="1024000"/>
   ...
  </basicHttpBinding>
  ...
 </bindings>
</system.serviceModel>

在我的一个函数中,我正在使用默认构造函数实例化一个 BasicHttpBinding 对象。

BasicHttpBinding binding = new BasicHttpBinding();

我希望它具有我在默认配置中定义的属性,但它似乎没有这样做。相反,它将我在默认配置(maxReceivedMessageSize、maxBufferSize)中定义的两个值分配给 65536,根据 Microsoft 的文档,这是他们设置为默认值的值。

默认构造函数不从 web.config 文件中读取吗?还是我缺少什么?

标签: c#asp.netbasichttpbinding

解决方案


您必须告诉要加载什么 Web 配置 为绑定命名

<system.serviceModel>
...
 <bindings>
  <basicHttpBinding name="basicHttpBinding1">
   <binding maxReceivedMessageSize="1024000" maxBufferSize="1024000"/>
   ...
  </basicHttpBinding>
  ...
 </bindings>
</system.serviceModel>

接受绑定部分名称的 C# 调用重载

BasicHttpBinding binding = new BasicHttpBinding("basicHttpBinding1");

推荐阅读