BasicHttpBinding 不使用默认配置

BasicHttpBinding not using default configuration

我在 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 文件中读取的吗?还是我遗漏了什么?

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

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

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

BasicHttpBinding binding = new BasicHttpBinding("basicHttpBinding1");