狀況
請考慮下列情況:
-
您建立 Windows 通訊基礎 (WCF) 服務是裝載在網際網路資訊服務 (IIS)。
-
您可以使用WebScriptEnablingBehavior類別在 WCF 服務中。
-
您設定要用於安全通訊端層 (SSL) 驗證的用戶端憑證的 WCF 服務。若要這麼做,您可以設定ClientCredentialType屬性憑證Web.config 檔案中。
在這個案例中,當您執行 WCF 服務, System.NotSupportedException例外狀況,並且您收到錯誤訊息,類似下列︰
SSL 的設定服務 'None' 不符的 IIS 'Ssl、 SslNegotiateCert、 SslRequireCert、 SslMapCert、 Ssl128'。
原因
HttpTransportBindingElement執行個體的某些屬性不會複製到 [自動產生的 javascript 的 proxy 端點,就會發生這個問題。
解決方案
已經可以從 Microsoft 取得支援的 hotfix。不過,其旨在修正本文所描述的問題。它只適用於發生此特定問題的系統上。
若要解決這個問題,請連絡 Microsoft 客戶支援服務 」 取得 hotfix。如需 Microsoft 客戶支援服務電話號碼以及支援費用的相關資訊的完整清單,請造訪下列 Microsoft 網站︰
http://support.microsoft.com/contactus/?ws=support注意在特殊的情況下,如果 Microsoft 支援專業人員認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。
先決條件
您必須擁有.NET Framework 3.5 Service Pack 1 (SP1) 安裝套用此 hotfix 之後。
重新啟動需求
您沒有安裝 hotfix 之後,請重新啟動電腦。
Hotfix 取代資訊
此 hotfix 不會取代任何其他 hotfix。
此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請在 [控制台] 中的日期和時間項目使用 [時區] 索引標籤。
Windows Server 2000、 Windows Server 2003 和 Windows XP x86 為基礎的版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
569,344 |
22-Jul-2009 |
01:51 |
x86 |
x64 為主的版本,Windows Server 2000、 Windows Server 2003 和 Windows XP
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
491,520 |
22-Jul-2009 |
02:13 |
x64 |
Windows Server 2000、 Windows Server 2003 和 Windows XP 的 itanium 型版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
491,520 |
22-Jul-2009 |
02:26 |
IA-64 |
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
因應措施
若要解決這個問題,自主裝載 WCF 服務,而不是裝載在 IIS 服務。
更多的資訊
堆疊傾印資訊
System.ServiceModel.dll!System.ServiceModel.Channels.HttpsChannelListener.ApplyHostedContext(System.ServiceModel.Activation.VirtualPathExtension virtualPathExtension, bool isMetadataListener) + 0x1b7 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.HttpsTransportBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x69 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes
System.ServiceModel.dll!System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x66 bytes
System.ServiceModel.Web.dll!System.ServiceModel.Channels.WebScriptMetadataMessageEncodingBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x4b bytes
System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes
System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, string listenUriRelativeAddress, System.ServiceModel.Description.ListenUriMode listenUriMode, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0xa6 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0x7c bytes
System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.AddMetadataEndpoint(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher, bool debugMode) + 0x698 bytes
System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.ApplyDispatchBehavior(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher) + 0x60 bytes