<serviceDebug>

規範 Windows 通訊基礎(WCF)服務的除錯與說明資訊功能。

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceDebug>

語法

<serviceDebug httpHelpPageBinding="String"
              httpHelpPageBindingConfiguration="String"
              httpHelpPageEnabled="Boolean"
              httpHelpPageUrl="Uri"
              httpsHelpPageBinding="String"
              httpsHelpPageBindingConfiguration="String"
              httpsHelpPageEnabled="Boolean"
              httpsHelpPageUrl="Uri"
              includeExceptionDetailInFaults="Boolean" />

屬性和項目

下列章節說明屬性、子元素和父元素。

Attributes

Attribute Description
httpHelpPageBinding 一個字串值,指定在使用 HTTP 存取服務說明頁面時,要使用的綁定類型。

只有內層結合元素且有支撐 System.ServiceModel.Channels.IReplyChannel 性的綁定才會被支持。 此外, System.ServiceModel.Channels.MessageVersion 綁定的性質必須為 MessageVersion.None。
httpHelpPageBindingConfiguration 一個字串,指定屬性中 httpHelpPageBinding 指定的綁定名稱,並參考該綁定的額外設定資訊。 該區段必須定義 <bindings> 相同名稱。
httpHelpPageEnabled 一個布林值,控制 WCF 是否會在屬性指定的 httpHelpPageUrl 地址發佈 HTML 說明頁面。 預設值為 true。

你可以設定此屬性, false 讓 HTML 瀏覽器無法看到 HTML 說明頁面的發布。

為了確保 HTML 說明頁面會被屬性控制 httpHelpPageUrl 的位置發佈,你必須將此屬性設為 true。 此外,還必須符合以下一項條件:

- 屬性 httpHelpPageUrl 為支援 HTTP 協定方案的絕對位址。
- 有一個支援 HTTP 協定方案的服務基底位址。

雖然如果指派一個不支援 HTTP 協定方案的絕對位址, httpHelpPageUrl 屬性會拋出例外,但若其他情境中上述條件未被滿足,則不會出現例外,也不會出現 HTML 說明頁面。
httpHelpPageUrl 一個 URI,指定使用者在使用 HTML 瀏覽器查看端點時所見的,該檔案的相對或絕對基於 HTTP 的 URL。

你可以利用這個屬性來啟用自訂的 HTML 說明檔,該檔案會從 HTTP/Get 請求(例如從 HTML 瀏覽器)回傳。 HTML 說明檔的位置解析如下。

1. 若此屬性值為相對位址,則 HTML 說明檔的位置即為支援 HTTP 請求的服務基底位址值,加上此屬性值。
2. 若此屬性值為絕對位址且支援 HTTP 請求,則 HTML 說明檔的位置即為該屬性的值。
3. 若此屬性值為絕對值但不支援 HTTP 請求,則會拋出例外。

此屬性僅在屬性 httpHelpPageEnabled 為 true時有效。
httpsHelpPageBinding 一個字串值,指定使用 HTTPS 存取服務說明頁面時應使用的綁定類型。

只有內層結合元素且有支撐 IReplyChannel 性的綁定才會被支持。 此外, System.ServiceModel.Channels.MessageVersion 綁定的性質必須為 MessageVersion.None。
httpsHelpPageBindingConfiguration 一個字串,指定屬性中 httpsHelpPageBinding 指定的綁定名稱,並參考該綁定的額外設定資訊。 該區段必須定義 <bindings> 相同名稱。
httpsHelpPageEnabled 一個布林值,控制 WCF 是否會在屬性指定的 httpsHelpPageUrl 地址發佈 HTML 說明頁面。 預設值為 true。

你可以設定此屬性, false 讓 HTML 瀏覽器無法看到 HTML 說明頁面的發布。

為了確保 HTML 說明頁面會被屬性控制 httpsHelpPageUrl 的位置發佈,你必須將此屬性設為 true。 此外,還必須符合以下一項條件:

- 屬性 httpsHelpPageUrl 為支援 HTTPS 協定方案的絕對位址。
- 有一個支援 HTTPS 協定方案的服務基底位址。

雖然若指派的絕對位址不支援 HTTPS 協定方案, httpsHelpPageUrl 則會拋出例外,但若其他情境中上述條件皆未達成,則不會出現例外,也不見 HTML 說明頁面。
httpsHelpPageUrl 一個 URI,指定使用者在使用 HTML 瀏覽器查看端點時所見的基於 HTTPS 的相對或絕對 URL 的自訂 HTML 說明檔案。

你可以利用這個屬性來啟用自訂的 HTML 說明檔,該檔案會從 HTTPS/Get 請求(例如從 HTML 瀏覽器)回傳。 HTML 說明檔的位置解析如下:

- 若此屬性的值為相對位址,則 HTML 說明檔的位置為支援 HTTPS 請求的服務基底位址值加上此屬性值。
- 若此屬性的值為絕對位址且支援 HTTPS 請求,則 HTML 說明檔的位置即為該屬性的值。
- 若此屬性值為絕對值但不支援 HTTPS 請求,則會拋出例外。

此屬性僅在屬性 httpHelpPageEnabled 為 true時有效。
includeExceptionDetailInFaults 一個值,指定是否應在回傳給客戶端以供除錯目的的 SOAP 錯誤細節中包含受管理異常資訊。 預設值為 false。

若將此屬性設為 true,則可啟用管理異常資訊流向用戶端供除錯,並發布 HTML 資訊檔案,供網頁瀏覽器瀏覽服務的使用者使用。 注意: 將受管理異常資訊回傳給客戶端可能構成安全風險。 這是因為例外細節會暴露內部服務實作的資訊,這些資訊可能會被未經授權的用戶端使用。

子專案

沒有。

父項目

元素 Description
<態度> 指定一個行為元素。

備註

設定 includeExceptionDetailInFaults 為 true 允許服務回傳應用程式代碼拋出的任何例外,即使該例外未使用 FaultContractAttribute。 此設定在除錯伺服器拋出意外例外的情況時非常有用。 使用此屬性後,會回傳未知例外的序列化形式,您可以檢視該例外的更多細節。

謹慎

將受管理的例外資訊回傳給用戶端可能存在安全風險,因為例外細節會暴露內部服務實作的資訊,這些資訊可能被未經授權的用戶端使用。 由於涉及安全問題,強烈建議僅在受控除錯情境下進行除錯。 部署應用程式時應該設定includeExceptionDetailInFaults為 。false

關於管理例外相關安全問題的詳細資訊,請參閱「 合約與服務中的錯誤指定與處理」。 如需程式碼範例,請參閱 服務除錯行為。

你也可以設定 httpsHelpPageEnabled 和 httpsHelpPageUrl 啟用或停用說明頁面。 每個服務可選擇性地顯示一個說明頁面,包含服務資訊,包括取得該服務 WSDL 的端點。 可透過設定 httpHelpPageEnabled 為 true來啟用。 這使說明頁面能返回給服務的基址 GET 請求。 你可以透過設定 httpHelpPageUrl 屬性來更改這個地址。 此外,你也可以用 HTTPS 取代 HTTP 來提升安全性。

Optional httpHelpPageBinding 和 httpHelpPageBinding attributes 允許你設定用於存取服務網頁的綁定。 若未指定,則會依照適用的預設綁定HttpTransportBindingElement(HTTP HttpsTransportBindingElement為 ,HTTPS 為 ,HTTPS 為 ,) 作為服務說明頁面的適當存取。 請注意,這些屬性無法搭配內建的 WCF 綁定使用。 僅支援支援 xref:System.ServiceModel.Channels.IReplyChannel> 的內層綁定元素。 此外, System.ServiceModel.Channels.MessageVersion 綁定的性質必須為 MessageVersion.None。

另請參閱