2016-01-04 69 views
0

我正在使用ELMAH在我的數據庫中記錄錯誤。我在這裏遇到的問題是ELMAH總是在生產數據庫中記錄錯誤。 我的數據庫中有兩個連接字符串,一個是「實況環境」,一個是「開發環境」。根據數據庫環境記錄ELMAH錯誤使用

<add name="LivePortal" connectionString="Data Source=Live-Database;Initial Catalog=LivePortal;Persist Security Info=False;User ID=LivePortalAccess;Password=Password;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
<add name="DevConnectionString" connectionString="Data Source=dev-database;Initial Catalog=DevPortal;Persist Security Info=True;User ID=sa-admin;Password=Password" providerName="System.Data.SqlClient" />  
<add name="elmah-sqlserver" connectionString="Data Source=****;User ID=****;Password=****;Initial Catalog=****;" providerName="System.Data.SqlClient" /> 

<elmah> 
<security allowRemoteAccess="false" /> 
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sqlserver" /> 

的ELMAH代碼我從可用ELMAH連接站點複製的其餘部分。我已經完成了所有必需的配置,並且記錄錯誤,但僅限於Live DB。

我已查看其他網站,但如果我們使用多個數據庫指向正在使用的環境(即Live或Dev),則沒有任何網站具有任何信息。

在這方面的任何幫助將是非常好的和有益的。

在此先感謝。

回答

0

您需要使用像本指南中所述的web.config轉換之類的東西:Use multiple logs for different environments

基本上,您希望連接字符串指向您的web.config文件中的開發數據庫,​​然後添加一個web.release.config,web.production.config或任何您的命名模式,指向生產數據庫。

0

您也可以選擇使用dev和prod的相同數據庫,並只更改應用程序名稱。

<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="name" applicationName="dev/test/prod" /> 

這並不解決如何改變編程的ConnectionString的名稱或問題,但提供了另一種選擇。

請注意,如果刪除應用程序名稱,它將使用服務器名稱。通過這種方式,dev的異常只會對他們可見,如果你的dev/test/prod服務器是不同的(不只是不同的域),那麼它會自動被服務器名稱分開。