我们正在尝试部署我们的项目,但是我们无法让elmah在wwwroot站点外创建xml日志。它目前正在登录inetpub{site}\wwwroot\App_Data,因为这似乎是唯一有效的路径。我们希望将其记录到inetpub{site}\logs文件夹中。你有什么办法让它工作吗?我们已经尝试了文件夹的..\和../路径,但它们似乎不起作用。
发布于 2011-07-29 21:25:00
你有什么办法让它工作吗?
您可以提供日志文件的绝对路径,但应确保配置为在IIS下运行web应用程序的帐户对此文件夹具有写入权限,以便可以在其中创建和修改文件。
发布于 2012-10-12 14:51:05
ELMAH logPath只能在Web.config中配置,可以是虚拟路径(如果以“~/”开头)或绝对文件系统路径。Web.config中ELMAH logPath的默认配置为:
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />但是,有一个解决方法可以通过编程设置ELMAH logPath:
public class MvcApplication : HttpApplication
{
private static string _elmahDirectory;
private static readonly FieldInfo ElmahLogPathField = typeof(XmlFileErrorLog).GetField("_logPath", BindingFlags.NonPublic | BindingFlags.Instance);
protected void Application_Start()
{
// Assign your path here
_elmahDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
...
}
protected void Application_BeginRequest()
{
var xmlFileErrorLog = (XmlFileErrorLog)Elmah.ErrorLog.GetDefault(HttpContext.Current);
ElmahLogPathField.SetValue(xmlFileErrorLog, _elmahDirectory);
}
}发布于 2011-08-02 22:19:03
正如Darin提到的,您是否确保运行web应用程序的用户帐户有权访问您的logs文件夹。我想相对路径应该没问题吧?还要确保文件夹存在?
https://stackoverflow.com/questions/6873614
复制相似问题