んがWCFでの認証が必要ですすべてのサービスの操作で偽装([OperationBehavior(Impersonation = ImpersonationOption.Required)]
)が使用されるため、Webサービスは強制的にログインします。メタデータの要求は、サービスの説明ページは、私は以下の構成を使用してNTLM認証を要求するようにWCFサービスを設定していない
IIS 7では、匿名認証とWindows認証を有効にしました。
上記のサービスをホストするhttp://test.server/LogisticsServices.svc
にアクセスすると、既定のサービスの説明ページが匿名で表示されます。ただし、Visual Studioがhttp://test.server/LogisticsServices.svc/$metadata
にアクセスしてクライアントプロキシを生成しようとすると、サーバーはHTTPコード401で応答し、認証を期待しています。私はメタデータが匿名で利用できると期待していただけでなく、サーバーは私が与えている資格情報を受け入れていない(たとえ、彼らが正しいという事実を知っていても)。
異なる設定をテストして、クライアントプロキシを生成できるようにするためにauthenticationScheme
をバインディングのトランスポートから削除しようとしましたが、サービスの操作に偽装([OperationBehavior(Impersonation = ImpersonationOption.Required)]
)が必要なため例外が発生します。
サービスのメタデータを匿名で利用できるようにするために、サービスの設定には何が欠けていますか?私は全部が間違っているならば、提案にもオープンしています。ここ
が、私は同様の構成とドン」でテストサービスを構成しましたメタデータの取得に問題があります。ブラウザから、次のように入力してwsdlを見ることができます:http://test.server/LogisticsServices.svc?wsdl –
WSDLが見えます。 .svcの後にスラッシュがある場合にのみ資格情報が必要であることに気付きました。 http://test.server/LogisticsServices.svc/またはhttp://test.server/LogisticsServices.svc/$metadata – madd0
WSDLを入手できる場合は、扱いにくいが単純な解決策は、以下を含むファイルを作成することです。 WSDL(&wsdl:import参照される各コンテンツのファイル)を作成し、開発環境のWebサーバーに配置します。ファイルへのURLを使用してプロキシを構築します。サービス契約が変更される(厄介な)たびにWSDLと関連するファイルを更新する必要がありますが、認証の問題を回避できます:) –