IIS 構成オプションの 1 つは、クライアントのブラウザーに送信されるエラーの詳細の量です。
独自の開発サーバーが必要であり、運用サーバーから詳細なエラー メッセージを一般に公開しない理由は明らかです。
開発者の IP アドレスなど、特定のホストにエラーを送信するように IIS を設定するにはどうすればよいでしょうか。アプリケーションで実際にエラーが発生しているかどうかを確認するためだけに、サーバーにリモート デスクトップ接続したくありません。
私が考えている代替案は、同じサーバー上に別の Web サイトを設定し、特定のホストにのみアクセスを許可することです。この Web サイトは、詳細なエラーを取得しようとしている Web サイトへのリバース プロキシとして機能しますが、これは必要以上に複雑であるように思われます。
答え1
標準の IIS 設定を使用すると、ローカル サーバーとリモート マシンを区別することしかできません。特定のリモート マシンに詳細なエラーを表示し、他のマシンには表示しないようにする方法はありません。
とにかくこれを実行できるトリックがあります。
開発用に 2 番目のサイトを用意するというアイデアはすでに正しいです。理想的には、すべてのアプリケーション ファイルを含む単一のサイトが必要ですが、エラー設定を定義するには 2 つの異なる web.config が必要です。
1 つのサイトに 2 つの構成を設定することはできませんが、IIS 構成システムは階層化されており、ほとんどの設定を複数の場所に保存できます。
同じ物理的な場所を指す 2 つの Web サイトを作成します。
設定をローカルの web.config に配置するのではなく、<system.web><customErrors>
グローバルの web.config に配置します%systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
。どちらの場合<system.webServer><httpErrors>
も、%systemroot%\System32\inetsrv\config\applicationHost.config
これらの設定を次のような場所タグで囲みます。
<location path="ProdSite">
<system.web>
<customErrors mode="On" />
</system.web>
</location>
<location path="DevSite">
<system.web>
<customErrors mode="Off" />
</system.web>
</location>
IISマネージャーを使用してこれを行うこともできます。Management
サイトのセクションで、を開いてConfiguration Editor
変更したい設定までドリルダウンし、上部のFrom
ドロップダウンをまたはにRoot Web.Config
変更します。ApplicationHost.config
まだ非常に簡単ではありませんが、単一の Web サイトであれば問題ありません。