我的ASP.NET Web应用程序的后端在生产中抛出异常(但在本地调试时却没有)。
理想情况下,我想将异常输出到可以读取的文本文件中。这是我到目前为止所尝试的:
catch (Exception ex)
{
string exceptionString = ex.ToString();
string errorLogPath = HttpContext.Current.Server.MapPath("~/Server/LogFiles");
StreamWriter sw = new StreamWriter(errorLogPath + '\\' + "logs.txt", true);
sw.WriteLine(exceptionString);
sw.Close();
}
当我转到logs.txt文件时,那里什么都没有。我很确定有一个异常被捕获,所以我不明白为什么它没有被写入文本文件。也许我的代码错了?
在不附加调试器的情况下查看生产中抛出的后端异常的最佳方法是什么?
答案 0 :(得分:0)
我的问题已经解决了。
日志写入问题确实是由于缺少不允许StreamWriter在目录上写入的权限引起的。 This guide帮助更新了权限。作为旁注:抛出的异常也是由于缺乏权限引起的。
供将来参考:Elmah似乎非常有用,可以轻松阅读生产中抛出的异常。你甚至可以得到熟悉的死亡黄色屏幕。它可以很容易地添加。 This guide对于将Elmah添加到我的MVC项目非常有帮助。