ELMAHを既存の ASP.NET アプリケーションに統合して、エラーの調査をさらにサポートすることを検討しており、接続文字列の助けを借りることができます。アプリケーションが展開されているすべての環境または環境に対して単一の web.config ファイルを使用し、実行時に、アプリは通常、URL に基づいて、どの環境にあるかを決定します。
これは、標準ブロックが私たちに望んでいることです...
<connectionStrings>
<add name="TESTAppDB" connectionString="Data Source=SQL-T-APPNAME.COMPANY.COM;Initial Catalog=APPNAME;User ID=USER;Password=THEPASS" providerName="System.Data.SqlClient"/>
<add name="CERTAppDB" connectionString="Data Source=SQL-C-APPNAME.COMPANY.COM;Initial Catalog=APPNAME;User ID=USER;Password=THEPASS" providerName="System.Data.SqlClient"/>
<add name="PRODAppDB" connectionString="Data Source=SQL-P-APPNAME.COMPANY.COM;Initial Catalog=APPNAME;User ID=USER;Password=THEPASS" providerName="System.Data.SqlClient"/>
</connectionStrings>
Elmah では、接続文字列の名前を指定するだけでよいように見えますが、これを実行時に動的に指定するにはどうすればよいでしょうか? たとえば、私がテストしている場合、これが必要です:
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="TESTAppDB"/>
</elmah>
しかし、私がPRODにいる場合:
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="PRODAppDB"/>
</elmah>
編集
Web アプリケーションの展開方法は、私がやろうとしていることの範囲外です。ELMAH Sql エラー ログのデータソースを変更できるコード ソリューションが必要です...
今日の Web アプリのデプロイ方法を変更することはできません。つまり、TEST にあるものは何でも CERT に移動します。CERT にあるものは PROD に移動します。Web アプリは、それがどの環境にあるかを判断し、そのように実行できる必要があります...