如何更改默认的 WCF 服务绑定
本文关键字:服务 绑定 WCF 何更改 默认 | 更新日期: 2023-09-27 18:34:22
在我的WCF中,我有一些服务。其中一个必须对消息大小有更大的限制,因此我必须创建另一个绑定并更改配置。
但。。。我在 Web.config 中看不到我的服务的任何配置 - 什么都没有。有什么东西是默认的?那么在哪里可以更改服务绑定呢?
在 WCF 4.0+ 中引入了默认绑定和终结点的概念。 例如,如果创建新的 WCF 服务应用程序,则开箱即用且不进行任何更改,您将获得使用 basicHttpBinding
(http
的默认绑定(侦听服务的默认终结点。
如果需要大于绑定配置默认值的值,则有两种选择:
创建默认绑定配置节。 这是通过从绑定中省略 name
属性来完成的,如下所示:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxReceivedMessageSize="528880" />
</basicHttpBinding>
</bindings>
<system.serviceModel>
请注意,没有name
属性(出于说明目的,省略了其他属性(。 您指定的配置将用作通过 http 传入并使用 basicHttpBinding
的任何请求的默认配置。
如步骤 1 中所示创建配置,但使用 name
属性,然后使用 bindingConfig
属性将该绑定配置分配给显式终结点,如下所示:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="MyBinding" maxReceivedMessageSize="528880" />
</basicHttpBinding>
</bindings>
<services>
<service name="MyService">
<endpoint address="" bindingConfiguration="MyBinding" binding="basicHttpBinding" contract="MyService.IMyContract" />
</service>
</services>
<system.serviceModel>
第二个示例将"MyBinding"配置分配给定义的终结点。
如果你想对 http 请求使用basicHttpBinding
以外的其他东西,那么你也可以更改协议映射,如 Neel 的答案所示。
您还可以查看 Windows Communication Foundation 4 开发人员简介,了解有关 WCF 4.0 中引入的默认绑定/终结点等的详细信息
如果要将默认绑定更改为 wsHttpBinding,则必须使用:
<protocolMapping>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>