WCF - 如何将serviceBehaviors附加到WCF端点(无<service>标记)</service>

时间:2011-12-01 22:18:04

标签: wcf configuration wcf-configuration servicebehavior

我正在使用第三方WCF服务,其配置位于下方(其中的一部分)。我想将serviceBehaviors分配给端点,但此处没有<service>标记。在这种情况下,您如何分配'serviceBehaviors'?

<client>
  <endpoint address="https://something/someservice.asmx" binding="customBinding" bindingConfiguration="ABCBinding" contract="Democlient.Soap" name="Soap" behaviorConfiguration="SoapEndpointB" />
</client>
<behaviors>
  <endpointBehaviors>
    <behavior name="SoapEndpointB">
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="SoapServiceB">
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
      <serviceMetadata httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

2 个答案:

答案 0 :(得分:3)

您将serviceBehaviors分配给WCF服务器端点,而不是客户端端点。如果需要更改,您必须请求第三方WCF服务主机添加您寻找的服务行为。

答案 1 :(得分:1)

看起来您正在显示的配置是您的客户端配置。这只是表明你将如何与服务进行通信。它不会告诉服务有关您的客户的任何信息。

请记住,服务不了解客户端,客户对服务的唯一了解是通过元数据交换。

除非服务提供了一些方法(不是通过任何.Net或WCF机制),否则您的客户端无法指定服务的行为方式,也不应该指定。给定服务可以处理来自许多不同客户的请求,每个客户都有自己的愿望。处理这种情况没有好办法。