次のエラーのデバッグに 2 日を費やしたので、調査結果を共有したいと思いました。
シナリオは次のとおりです。IIS7 でホストされている WCF サービスがあります。このサービスは、セキュリティ モードが TransportCredentialOnly に設定された basicHttpBinding を使用します。この Web サイトでは、匿名認証と Windows 認証が有効になっています。Web サイトのアプリケーション プールは、Web サイトの物理フォルダーに対するあらゆる権限を持つドメイン アカウントで実行されます。Internet Explorer からサービスの .svc を参照することはできましたが、クライアントからサービスのメソッドを呼び出そうとすると、「HTTP 要求はクライアント認証方式のネゴシエートでは許可されていません」というエラーが発生しました。また、IIS ログはメソッドの呼び出しごとに 401.5 エラーを示しました。これはこのセキュリティ設定では正常ですが、その後に 200 が続くはずですが、ここではそうではありませんでした。
最後に、デフォルト Web サイトの認証設定を確認することで、問題を解決することができました。そこでは Windows 認証が無効になっていました。有効にすると、サービスが機能し始めました。Web サイトの設定がこれを上書きすると思うかもしれませんが、そうではありません。そのため、ワイヤーシャークや 1 日中プロモーニングから身を守り、この設定を確認してください。
乾杯!