共用方式為


服務偵錯行為

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宣告例外狀況也一樣。 完成方式是設定 includeExceptionDetailInFaultstrue。 當偵錯過程中伺服器出現非預期的例外狀況時,此設定很有用。

    這很重要

    在生產環境中開啟此設定並不安全。 非預期的伺服器例外狀況可能有一些不適合客戶端的資訊,因此設定 includeExceptionDetailsInFaultstrue 可能會導致資訊外洩。

  • serviceDebug<> 也允許使用者啟用或停用說明頁面。 每個服務都可以選擇性地公開說明頁面,其中包含服務的相關信息,包括取得服務的 WSDL 端點。 您可以設定 httpHelpPageEnabledtrue,以啟用此功能。 這讓說明頁面能在 GET 要求服務基位址時顯示出來。 您可以藉由設定另一個屬性 httpHelpPageUrl來變更此位址。 您可以使用 HTTPS 而非 HTTP 來保護此安全。 這可以藉由設定 httpsHelpPageEnabledhttpsHelpPageUrl來完成。

當您執行範例時,作業要求和回應會顯示在用戶端控制台視窗中。 前三個作業(加法、減法和乘法)必須成功。 最後一個作業(“divide”)因為除以零異常而失敗。

要設定、建置和執行範例,請執行以下步驟:

  1. 請確定您已針對 Windows Communication Foundation 範例 執行One-Time 安裝程式。

  2. 若要建置解決方案的 C# 或 Visual Basic .NET 版本,請遵循建置 Windows Communication Foundation 範例 中的指示。

  3. 若要在單一或跨計算機組態中執行範例,請遵循執行 Windows Communication Foundation 範例 中的指示。