2

次のエラーをデバッグするのに2日間費やしてしまったので、私は自分の所見を共有します。TransportCredentialOnlyセキュリティモードのWCFサービスでHTTPステータスが発生するIIS7でコード401エラーが発生する

シナリオは次のとおりです。 IIS7でホストされているWCFサービスがあります。このサービスでは、セキュリティモードがTransportCredentialOnlyに設定されたbasicHttpBindingが使用されます。 Webサイトには、匿名認証とWindows認証が有効になっています。ウェブサイトのAppliaction Poolは、ドメインアカウントの下で動作します。ドメインアカウントには、ウェブサイトの物理的なフォルダにすべての権限があります。 Internet Explorerからサービスの.svcをブラウズしても、クライアントからサービスのメソッドを呼び出そうとしたときに、「HTTPリクエストがクライアント認証スキームNegotiateで不正です」というエラーが表示されました。また、IISログには、このセキュリティ設定では通常の方法の呼び出しごとに401.5エラーが表示されていましたが、ここには該当しない200が続く必要があります。

最後に、のデフォルトのウェブサイトの認証設定を確認して、問題を解決することができました。そこでWindows認証が無効になりました。私たちはそれを可能にし、サービスが働き始めました。あなたは、ウェブサイトの設定がこれを上書きするとは思うでしょうが、そうしないでしょう。だから、一日中一生の時間を過ごし、この設定をチェックしてください。

乾杯!

答えて

0

これは、あなたが設定は、すべての層で一致して取得する必要があり、問題の一種である:

  • App.configをクライアント
  • 上のIIS設定
  • アプリケーションプールIndentity
  • SVCファイルの
  • NTFS権
  • サーバー上のWeb.Config

これらはすべて動作するためには一致する必要があります。

関連する問題