コードをテストするための既定値がいくつかありますが、セキュリティ上の理由から、これらの値は、アプリが運用環境ではなく ASP.NET 開発サーバーで実行されているときに設定する必要があります。アプリが実行されている場所をプログラムで特定するにはどうすればよいですか?
3 に答える
手法は、コーディング変換ファイルを使用して設定できるプロパティを構成に追加することです。web.config では、"DEV" が true になっている可能性があります。プロダクション変換ファイルでは、「DEV」が間違っている可能性があります。この手法を使用すると、たとえば、ステージング、テスト、本番前のいずれにいるかを判断するための値を取得することもできます。これは、接続文字列の変更にも使用される手法です。
変換ファイルは、展開に応じて構成内のさまざまな値を変更するために使用されます。
これは、アプリケーションがローカルで実行されているか実稼働環境で実行されているかを判断するための非常に貧弱な方法です。より良い方法は、ランタイムの web.config 値 (対応するデバッグ モードとリリース モードの変換を使用) を使用するか、コンパイル時の条件 ( #if DEBUG ... #endif
) を使用することです。
「ASP.NET 開発サーバー」が Visual Studio に含まれる Cassini サーバーを意味する場合、これを行う方法はサポートされていません。
他の人が提案したように web.config に情報を追加するか、サポートされていない手法を使用することができます (将来のバージョンでの動作は保証されません ...)。例: 検査
System.Environment.CommandLine
Cassini で実行すると、「...WevDev.WebServer...」が含まれます。