【发布时间】:2011-08-15 19:12:00
【问题描述】:
设置简单,我正在使用 ELMAH 记录异常并向我发送电子邮件。在我的本地机器上一切正常,但是当我将更改放在生产服务器上时,不会记录错误,也不会收到电子邮件。
这是我本地机器上的 web.config:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false"
type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false"
type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false"
type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false"
type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<security allowRemoteAccess="0" />
<errorLog type="Elmah.SqlErrorLog, Elmah"
connectionStringName="MyDB" />
<errorMail from="errors@mysite.com" to="myemail@mysite.com"
subject="Error" smtpServer="localhost" smtpPort="25"
userName="user@mysite.com" password="mypassword" />
</elmah>
<connectionStrings>
<add name="MyDB" connectionString="Data Source=.\SQLEXPRESS
AttachDbFilename=|DataDirectory|\MyDB.mdf;
Integrated Security=True;User Instance=True;
MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
<!--<add name="MyDB" connectionString="Server=mysite.com;
Database=MyDB;User ID=user;Password=mypassword;
Trusted_Connection=True;Integrated Security=False;
MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />-->
</connectionStrings>
<system.web>
<!--<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd"
type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>-->
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
</httpModules>
</system.web>
<location path="Admin/Errors">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd"
type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
</location>
</configuration>
我机器上的 web.config 和生产上的唯一区别是使用的连接字符串。在我的机器上,我连接到一个 .mdf 文件。在生产中,我正在连接到外部数据库。
谁能看到我在这里做错了什么?
我正在使用 C# 和 ASP.NET MVC 3
【问题讨论】:
-
您的生产服务器运行的是什么版本的 IIS?
-
此评论适用于可能遇到相同问题的其他人。不要忘记在生产服务器上创建 3 个存储过程。 (ELMAH_GetErrorsXml、ELMAH_GetErrorXml 和 ELMAH_LogError 以及为 DB 用户提供访问权限)。希望这对某人有所帮助。
标签: c# asp.net asp.net-mvc asp.net-mvc-3 elmah