0

在我的 ASP.NET MVC 3 应用程序中,我配置了 Elmah,然后配置了 Elmah.MVC 以记录错误。在本地主机(Windows 7,IIS 6.1)上运行时,这两个日志都很好。在生产服务器(2008 R2,IIS 6.1)上,不会记录任何错误。我可以毫无问题地浏览到站点中的 /elmah 目录(我现在允许远程访问。)我已经为 XML 日志记录的文件夹设置了适当的权限,但没有记录任何内容。我回溯使用“内存中”记录器,仍然没有日志。我已确保在 system.web 和 system.webserver 中正确引用了模块和处理程序。

我浏览了很多与 Elmah 配置问题、权限等相关的帖子,但还没有找到原因。

我在与 Elmah 相关的生产服务器上是否缺少其他安全/权限问题?还有什么可能导致这种情况?

4

2 回答 2

0

确保您没有在文件夹上选中“只读”。谢谢

于 2013-07-18T13:58:26.423 回答
0

不确定这是否仍然是最新的,但我遇到了类似的问题:当您使用 customErrors mode="Off" 时,它在我的本地计算机Web 服务器上都可以正常工作,但是如果您将 customErrors 更改为 RemoteOnly,那么它只会在以下情况下工作您在本地访问了该网站。解决方案是在 FilterConfig 部分添加一个新的 Elmah 过滤器,以确保无论 customErrors 模式如何,elmah 都会始终记录错误。这是详细信息:http ://forums.asp.net/t/1687875.aspx?Elmah+Error+Log+is+not+working+my+production+Server

这是代码片段(归功于帖子上的人):

public class FilterConfig {
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
        filters.Add(new ElmahHandledErrorLoggerFilter());
        filters.Add(new HandleErrorAttribute());
    }
}

public class ElmahHandledErrorLoggerFilter : IExceptionFilter {
    public void OnException(ExceptionContext context) {
        //if (context.ExceptionHandled) // Log only handled exceptions, because all other will be caught by ELMAH anyway.
        //We want elmah to log ALL exceptions
        ErrorSignal.FromCurrentContext().Raise(context.Exception);
    }
}
于 2015-07-31T18:49:13.160 回答