Asp.Net网站无法写入错误日志,测试站点可以,正是站点不行
我最近在做一个Asp.Net的网站的维护工作,该网站是一个Webform网站,中间调用了PowerShell命令文件做SharePoint部署的一些任务。
为了调试方便,我最关键的一步(在.cs文件中)加了将Exception的信息写入文本文件。这个“写入日志”的功能在我的本地机上运行良好,发布到服务器上的一个测试网站(端口号与正式网站不同),“将错误写入日志”也是正常运转,但是发布到服务器上的正式站点,就无法写入了。网站明明报错了,但是打开日志文件,就是啥也没有。查看了正式站点和测试站点的文件夹的权限,没发现什么不同。不过正式站点在D盘,测试站点在C盘。权限中Authenticated Users 和Users都给的完全控制。
图片是在本地和服务器测试站点成功的错误日志。还有一张是站点的文件夹权限设置,测试站点和正式站点是一样的。
代码如下,错误日志文件ErrorLog.txt 直接手动创建好放在那里了。
try
{
XXXXXX
}
catch (Exception ex)
{
string LogPath = "";
String LogStr = String.Empty;
LogPath = HttpContext.Current.Server.MapPath("ErrorLog.txt");
LogStr += " 发生时间: " + DateTime.Now.ToString() + " \r\n ";
LogStr += " 详细描述: " + ex.Message + " \r\n ";
LogStr += " 内层错误: " + ex.InnerException.ToString() + " \r\n ";
LogStr += " StackTrace: " + ex.StackTrace + " \r\n ";
LogStr += " TargetSite: " + ex.TargetSite + " \r\n ";
LogStr += " -----------------------------------------------------------------------------------------------------------------\r\n\r\n\r\n ";
File.AppendAllText(LogPath, LogStr, System.Text.Encoding.Unicode);
//做了修改,最后要改回去,对错误详细信息和堆栈做了输出
context.Response.Write(GetJson(0, LogStr, 0, "部署失败", false));
}
回答
如果你不怕的话直接 给到iis localsystem权限 在写日志的目录上给到everyone的权限 . 试试
以上是 Asp.Net网站无法写入错误日志,测试站点可以,正是站点不行 的全部内容, 来源链接: utcz.com/a/58698.html