【问题标题】:Send error emails to that specific user when developing locally (using Elmah)?在本地开发时(使用 Elmah)向该特定用户发送错误电子邮件?
【发布时间】:2013-01-29 18:27:09
【问题描述】:

我正在使用 Elmah,我希望当我们的多个开发人员之一在本地运行他们的项目时,如果错误是在实时服务器上生成的,他们只会收到从该本地实例生成的任何错误电子邮件,通过电子邮件发送不同的(组)电子邮件。现在我们只是使用(可怕的)方法,每个人都有自己的 web.config,不应该(但有时会)提交到我们的 Repo,然后在部署到 live 时更改电子邮件字符串。

我们都在使用 VS 2010 和 Cassini,但开发人员可以在他们的工作计算机或通过 VPN 连接的家用计算机上工作,但他们在家用计算机上的登录名并不反映他们的工作计算机用户名。

到目前为止,我基本上只有这个 ELMAH 电子邮件设置:

<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ElmahDb" />
<errorMail from="no-reply@mydomain.com" to="myemail@mydomain.com" subject="Project Error" smtpPort="0" async="false" />

Application_Start 中还有一个空方法:

protected void Application_Start()
    {
        Config.SetErrorEmailReceiver();
    }

public static void SetErrorEmailReceiver()
    {
        //some logic
    }

【问题讨论】:

  • 您是否真的希望开发人员在开发时发送电子邮件(这似乎真的很烦人),或者您是否只想在代码运行时打开电子邮件在生产中运行?如果是后者,那么您应该使用 web.config 转换。
  • 前者,我们在开发和生产时运行电子邮件。

标签: c# asp.net-mvc web-config elmah


【解决方案1】:

最好的方法可能是使用外部配置文件。所以,你会改变你的 web.config 说:

<errorMail configSource="elmah-errorMail.config" /> 

然后每个开发人员将拥有自己的该文件的副本,其中包含:

<errorMail from="no-reply@mydomain.com" to="myemail@mydomain.com" subject="Project Error" smtpPort="0" async="false" />

当然,您的生产网络服务器上也有生产价值。

我仍然不明白您为什么要向开发人员发送电子邮件。一个黄色的死亡屏幕还不够警报吗:)

【讨论】:

  • 有时我们会分心或需要处理一些可能会或可能不会在该页面关闭的“紧急”事项,所以当您可以恢复“正常开发”时,只需查看电子邮件至看看你在哪里。这看起来不错,但这里可能存在回购问题。假设我刚刚格式化了我的家用电脑并重新检查了代码。要么我得到一个可能具有错误值的文件(如果我们提交此文件),要么我没有得到文件并且某些东西无法正常工作。我试图让一切尽可能自动化。有没有办法在本地获取 VPN 用户?
  • 您将永远提交此文件。所以,是的,每个开发人员在重新格式化硬盘驱动器时都必须花费 10 秒将此文件添加到本地计算机。 :) 我什至会包含一个名为的文件的示例版本:elmah-errorMail.config.sample。然后,您只需复制并粘贴该文件并填写您的电子邮件地址。
猜你喜欢
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2013-04-04
  • 1970-01-01
  • 2017-10-05
  • 1970-01-01
相关资源
最近更新 更多