在我的WCF中,我有一些服务。其中一个必须对邮件大小有更大的限制,所以我必须创建另一个绑定并更改配置。
但是......我在Web.config中看不到任何我的服务配置 - 什么也没有。什么是默认的? 那么我可以在哪里更改服务绑定?
答案 0 :(得分:6)
在WCF 4.0+中引入了默认绑定和端点的概念。例如,如果您创建一个新的WCF服务应用程序,开箱即用而没有任何更改,您将使用basicHttpBinding
(http
的默认绑定)获取默认端点监听服务的URI。
如果您需要的值大于绑定配置的默认值,则有两种选择:
制作默认的绑定配置部分。这是通过省略绑定中的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”配置分配给定义的端点。
如果您想使用除basicHttpBinding
以外的其他内容来处理http请求,那么您也可以更改协议映射,如Neel的回答所示。
您还可以查看A Developer's Introduction to Windows Communication Foundation 4以获取有关WCF 4.0中引入的默认绑定/端点/等的更多信息
答案 1 :(得分:0)
如果要将默认绑定更改为wsHttpBinding,则必须使用:
<protocolMapping>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>