0

我正在使用 ELMAH 在我的数据库中记录错误。我在这里遇到的问题是 ELMAH 总是在我的生产数据库中记录错误。我的数据库中有两个连接字符串,一个用于“Live Environment”,一个用于“Dev Environment”。

<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),这些站点都没有任何信息。

在这方面的任何帮助都会非常有用。

提前致谢。

4

2 回答 2

0

您需要使用本指南中所述的 web.config 转换之类的东西:为不同的环境使用多个日志

基本上,您希望连接字符串指向 web.config 文件中的 dev 数据库,然后添加指向生产数据库的 web.release.config、web.production.config 或任何命名架构。

于 2016-01-10T11:43:57.983 回答
0

您还可以选择为 dev 和 prod 使用相同的数据库,并且只需更改应用程序名称。

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

这并不能解决如何以编程方式更改名称或连接字符串的问题,但提供了另一种选择。

附带说明,如果您删除应用程序名称,它将使用服务器名称。通过这种方式,开发者的异常对他们来说是可见的,如果你的开发/测试/生产服务器不同(不仅仅是不同的域),那么它将自动由服务器名称分隔。

于 2016-01-29T18:34:05.270 回答