規範 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。