2

次のエラーのデバッグに 2 日を費やしたので、調査結果を共有したいと思いました。

シナリオは次のとおりです。IIS7 でホストされている WCF サービスがあります。このサービスは、セキュリティ モードが TransportCredentialOnly に設定された basicHttpBinding を使用します。この Web サイトでは、匿名認証と Windows 認証が有効になっています。Web サイトのアプリケーション プールは、Web サイトの物理フォルダーに対するあらゆる権限を持つドメイン アカウントで実行されます。Internet Explorer からサービスの .svc を参照することはできましたが、クライアントからサービスのメソッドを呼び出そうとすると、「HTTP 要求はクライアント認証方式のネゴシエートでは許可されていません」というエラーが発生しました。また、IIS ログはメソッドの呼び出しごとに 401.5 エラーを示しました。これはこのセキュリティ設定では正常ですが、その後に 200 が続くはずですが、ここではそうではありませんでした。

最後に、デフォルト Web サイトの認証設定を確認することで、問題を解決することができました。そこでは Windows 認証が無効になっていました。有効にすると、サービスが機能し始めました。Web サイトの設定がこれを上書きすると思うかもしれませんが、そうではありません。そのため、ワイヤーシャークや 1 日中プロモーニングから身を守り、この設定を確認してください。

乾杯!

4

1 に答える 1

0

これは、すべてのレイヤーで設定を一致させる必要がある種類の問題です。

  • クライアント上の App.config
  • IIS 設定
  • アプリ プールのアイデンティティ
  • svc ファイルに対する NTFS 権限
  • サーバー上の Web.Config

機能するには、これらすべてが一致する必要があります。

于 2012-04-27T18:59:56.597 に答える