ServiceDebug 範例示範如何設定服務偵錯行為設定。 此範例是以實作服務合約的 ICalculator 為基礎。 此範例會明確定義組態檔中的服務偵錯行為。 它也可以在程序代碼中以命令方式完成。
在此範例中,用戶端是控制台應用程式(.exe),而服務是由 Internet Information Services (IIS) 所裝載。
備註
此範例的安裝程式和建置指示位於本主題結尾。
伺服器的 Web.config 檔案會定義服務偵錯行為,以啟用說明頁面和例外狀況處理,如下列範例所示。
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
<!-- Please set this to false when deploying -->
<serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceDebug> 是允許變更服務偵錯行為屬性的組態專案。 使用者可以修改此行為,以達到下列目的:
這可讓服務傳回應用程式程式代碼擲回的任何例外狀況,即使未使用 FaultContractAttribute宣告例外狀況也一樣。 完成方式是設定
includeExceptionDetailInFaults為true。 當偵錯過程中伺服器出現非預期的例外狀況時,此設定很有用。這很重要
在生產環境中開啟此設定並不安全。 非預期的伺服器例外狀況可能有一些不適合客戶端的資訊,因此設定
includeExceptionDetailsInFaults為true可能會導致資訊外洩。serviceDebug<> 也允許使用者啟用或停用說明頁面。 每個服務都可以選擇性地公開說明頁面,其中包含服務的相關信息,包括取得服務的 WSDL 端點。 您可以設定
httpHelpPageEnabled為true,以啟用此功能。 這讓說明頁面能在 GET 要求服務基位址時顯示出來。 您可以藉由設定另一個屬性httpHelpPageUrl來變更此位址。 您可以使用 HTTPS 而非 HTTP 來保護此安全。 這可以藉由設定httpsHelpPageEnabled和httpsHelpPageUrl來完成。
當您執行範例時,作業要求和回應會顯示在用戶端控制台視窗中。 前三個作業(加法、減法和乘法)必須成功。 最後一個作業(“divide”)因為除以零異常而失敗。