現象
次のような状況を考えます。
-
インターネット インフォメーション サービス (IIS) でホストされている Windows Communication Foundation (WCF) サービスを作成するとします。
-
WCF サービスでは、 WebScriptEnablingBehaviorクラスを使用します。
-
Secure Sockets Layer (SSL) の認証にクライアント証明書を使用する WCF サービスを構成するとします。これを行うには、証明書を Web.config ファイルのClientCredentialTypeプロパティを設定します。
このシナリオでは、WCF サービスを実行すると、 System.NotSupportedException例外がスローされます、エラー メッセージが表示される次のような。
SSL 設定サービスの 'なし' と一致していません、IIS の Ssl、SslNegotiateCert、SslRequireCert、SslMapCert、Ssl128。
原因
HttpTransportBindingElementインスタンスの一部のプロパティが javascript を自動生成されたプロキシ エンドポイントにはコピーされないために、この問題が発生します。
解決策
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、それはこの資料に記載された問題のみを修正するものです。この特定の問題が発生したシステムにのみ適用してください。
この問題を解決するには、修正プログラムを入手するよう、Microsoft カスタマー サポート サービスに問い合わせてください。マイクロソフト カスタマー サポート サービスの電話番号とサポートのコストに関する情報の一覧については、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support注: 特別な場合では、まれに通常サポート コールの発生に料金 Microsoft Support 担当者は、特定の更新で問題が解決されると判断した。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
必要条件
.NET Framework 3.5 Service Pack 1 (SP1) この修正プログラムを適用するためにインストールする必要があります。
再起動の必要性
修正プログラムをインストールした後にコンピューターを再起動する必要はないです。
修正プログラムの置き換えに関する情報
この修正プログラムによって他の修正プログラムが置き換わることはありません。
修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (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 |
Windows Server 2000、Windows Server 2003 および Windows XP の x64 ベースのバージョン
ファイル名 |
ファイル バージョン |
ファイル サイズ |
日付 |
時刻 |
プラットフォーム |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
491,520 |
22-Jul-2009 |
02:13 |
x64 |
Itanium ベースのバージョンの Windows 2000 Server、Windows Server 2003 および Windows XP
ファイル名 |
ファイル バージョン |
ファイル サイズ |
日付 |
時刻 |
プラットフォーム |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
491,520 |
22-Jul-2009 |
02:26 |
IA-64 |
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
回避策
この問題を回避するには、IIS のサービスをホストしているのではなく、WCF サービスを自己ホストします。
詳細
スタック ダンプ情報
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