首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elmah logPath在wwwroot之外

Elmah logPath在wwwroot之外
EN

Stack Overflow用户
提问于 2011-07-29 21:10:12
回答 4查看 1.5K关注 0票数 3

我们正在尝试部署我们的项目,但是我们无法让elmah在wwwroot站点外创建xml日志。它目前正在登录inetpub{site}\wwwroot\App_Data,因为这似乎是唯一有效的路径。我们希望将其记录到inetpub{site}\logs文件夹中。你有什么办法让它工作吗?我们已经尝试了文件夹的..\和../路径,但它们似乎不起作用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-29 21:25:00

你有什么办法让它工作吗?

您可以提供日志文件的绝对路径,但应确保配置为在IIS下运行web应用程序的帐户对此文件夹具有写入权限,以便可以在其中创建和修改文件。

票数 2
EN

Stack Overflow用户

发布于 2012-10-12 14:51:05

ELMAH logPath只能在Web.config中配置,可以是虚拟路径(如果以“~/”开头)或绝对文件系统路径。Web.config中ELMAH logPath的默认配置为:

代码语言:javascript
复制
<elmah>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />

但是,有一个解决方法可以通过编程设置ELMAH logPath:

代码语言:javascript
复制
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);
    }
}
票数 3
EN

Stack Overflow用户

发布于 2011-08-02 22:19:03

正如Darin提到的,您是否确保运行web应用程序的用户帐户有权访问您的logs文件夹。我想相对路径应该没问题吧?还要确保文件夹存在?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6873614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档