【问题标题】:Log ELMAH errors based on the Database Environment In use根据使用中的数据库环境记录 ELMAH 错误
【发布时间】:2016-04-08 04:24:23
【问题描述】:

我正在使用 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),这些网站都没有任何信息。

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

提前致谢。

【问题讨论】:

    标签: asp.net-mvc-4 web-config elmah elmah.mvc


    【解决方案1】:

    您需要使用类似本指南中所述的 web.config 转换:Use multiple logs for different environments。

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

    【讨论】:

      【解决方案2】:

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

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

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

      附带说明,如果您删除应用程序名称,它将使用服务器名称。这样,dev 的异常对他们来说是可见的,如果你的 dev/test/prod 服务器不同(不仅仅是不同的域),那么它会自动由服务器名称分隔。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-15
        • 2018-03-20
        • 1970-01-01
        • 2013-06-12
        • 2011-10-19
        相关资源
        最近更新 更多