2011-12-01 25 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機制),否則您的客戶端無法指定服務的行爲方式,也不應該如此。一個給定的服務可能正在處理來自許多不同客戶的請求,每個客戶都有自己的願望。處理這種情況沒有什麼好方法。