2015-08-14 32 views
2

嘗試將includeExceptionDetailInFaults="true"添加到Web配置中,我正在調用Web服務,但我已定義的兩個行爲中沒有一個正在工作。添加includeExceptionDetailInFaults

這是調用Web服務時出現錯誤:

System.ServiceModel.FaultException:服務器由於內部錯誤,無法處理 請求。有關 錯誤的更多信息,請打開 服務器上的IncludeExceptionDetailInFaults(來自 ServiceBehaviorAttribute或來自配置行爲),以便將異常信息發送回客戶端, 或打開按照Microsoft .NET的跟蹤Framework 3.0 SDK 文檔和檢查服務器跟蹤日誌。

<behaviors> 
    <serviceBehaviors> 
    <behavior name="debug"> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

<!--<behaviors> 
    <endpointBehaviors> 
    <behavior name="debug"> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors>--> 

<client> 
    <endpoint address="..." 
      binding="wsHttpBinding" 
      bindingConfiguration="WSHttpBinding_ICommunicationService" 
      behaviorConfiguration="debug" 
      contract="CommunicationServiceReference.ICommunicationService" 
      name="WSHttpBinding_ICommunicationService" /> 
</client> 

編輯: 我看着這個類似的問題,但在建議的答案有

<services> 
     <service... 

,而在我的情況下,它

<client> 
    <endpoint 

我也試圖改變爲services,但沒有奏效

回答

0

我想你,包括就錯了屬性,基本上你告訴客戶端,包括異常信息(這將是一個安全隱患)。

在web.config中的服務,您將有一個行爲部分(這是從我們的代碼是工作的罰款,並已做了約4年拍攝):

<system.serviceModel> 
    <bindings configSource="bindings.config"></bindings> 
    <client configSource="client-local.config"></client> 
    <behaviors configSource="behaviors.config"></behaviors> 
    <services> 
     <service name="xxx.SomeService"> 
     <endpoint contract="xxx.ISomeService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding"/> 
     </service> 
    </system.serviceModel> 

Behaviours.config看起來是這樣的:

<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <dataContractSerializer maxItemsInObjectGraph="2147483646" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

此外,通過外部化的配置,我們可以保留一個副本在以確保在所有項目的一致性構建時複製到服務_MasterConfigs文件夾。

編輯: 道歉...我只是重新讀你的問題,你基本上已經得到了我所概述的。也許你命名行爲的事實是造成這個問題(不是它在邏輯上應該)。除非它是一個公開公開的WCF,否則我認爲最好還是返回異常信息,即使在發佈時也是如此。