プロジェクトで基本認証を使用しようとしていますが、これは通常、統合および QA 環境で正常に機能するか、IIS 7.5 を使用してローカルで実行することさえできます。しかし、IIS Express でローカルに実行すると、いくつかの非常に奇妙な問題が発生します。静的な要求を行うと、不可解な HTTP 500 エラーが発生し、そのリソースへのアクセスでエラーが発生したことがわかります。これは、おそらくアクセス許可に関連する理由で、エラー コード 0x80070542 が発生したことを示しています。同時に、ASP.NET でレンダリングされたものはすべて完璧になります。
大雑把な検索によると、問題は通常、IIS のアカウントがこれらのリソースにアクセスできないことに起因することが示されています。これは使い果たされており、IUSER は間違いなくリソースにアクセスできます。実際、まったく同じフォルダーが IIS 7.5 で完全に機能します。IIS Express バーフのみ。また、基本認証を有効にした場合にのみ、Windows 認証を有効にすると、すべての要求が完全に通過します。
最終的に、sysinternals procmon の実行を試みて、正しいユーザーを調べているのか、それが別の何かで失敗しているのかを調べたところ、BAD IMPERSONATION の結果として失敗していることがわかりました。しかし、誰がなりすましているのかを突き止めようとしても無駄でした。私たちが知る限り、IUSER / NETWORK SERVICE / default アカウントには適切なレベルのアクセス権があります。これは、IIS が運用モードで動作し、あらゆる種類のアクセス テストに合格することを前提としています。IIS Express を実行しているアカウントはすべてローカル管理者であり、偽装にアクセスできる必要があります。その権利をローカル セキュリティ ポリシーに手動で追加しても、違いはありません。なりすましユーザーを明示的に定義する以外に、これを修正する方法がわかりません。これは、本当に行う必要はありません。
では、IIS Express を基本認証と静的要求で動作させる正しい方法はありますか?