服務偵錯行為
ServiceDebug 範例 會示範如何設定服務偵錯行為設定。 此範例是以實作 ICalculator
服務合約的使用者入門為基礎。 這個範例會在組態檔中明確地定義服務偵錯行為。 這個行為也可以透過程式碼,以命令方式定義。
在這個範例中,用戶端是主控台應用程式 (.exe),而服務則是由網際網路資訊服務 (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
,便可達成這個目的。
當您執行範例時,作業要求和回應會顯示在用戶端主控台視窗中。 前三項作業 (加法、減法以及乘法) 一定會成功。 最後一個作業 (「除法」) 會因為除數為零例外狀況而失敗。
若要安裝、建置及執行範例
若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循 Building the Windows Communication Foundation Samples中的指示。
若要在單一或多部電腦組態中執行此範例,請遵循執行 Windows Communication Foundation 範例中的指示進行。