2013-07-15 72 views
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在localhost上工作,但不在生產上?

我瀏覽過很多與Elmah配置問題,權限等相關的帖子,但還沒有找到原因。

在Elmah相關的生產服務器上是否存在其他安全/權限問題?還有什麼可能導致這種情況?

+0

是仍然實際?我可以假設,生產機器的配置有問題。也許一些iis擴展設置可以捕獲所有錯誤,所以elmah無法捕捉任何東西。 –

回答

0

確保您沒有在文件夾上選中「只讀」。謝謝

0

不知道這是否仍然是最新的,但我有一個類似的問題:當您有customErrors模式=「關」,但如果您將customErrors更改爲在Web服務器上的本地計算機上,只有當您在本地訪問網站時,它纔會起作用。 解決方案是在FilterConfig部分添加一個新的Elmah過濾器,以保證elmah將始終記錄錯誤,而不管customErrors模式如何。這裏是後與細節: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); 
    } 
} 
相關問題