2011-12-01 37 views
2

我正在使用第三方WCF服务,并且其配置如下(的一部分为)。我想将serviceBehaviors分配给端点,但此处没有<service>标记。在这种情况下,你如何分配'serviceBehaviors'?WCF - 如何将serviceBehaviors附加到WCF端点(没有<service>标签)

<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> 

回答

3

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

1

它看起来像你显示的配置是你的客户端配置。这只是表明你将如何与服务进行沟通。它没有告诉服务有关你的客户的任何事情。

请记住,该服务不知道客户端,客户端对服务的唯一知识是通过元数据交换。

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