【问题标题】:eventlog not working in an asp.net application事件日志在 asp.net 应用程序中不起作用
【发布时间】:2011-08-02 21:20:50
【问题描述】:

我正在尝试从 ASP.Net 3.5 Web 应用程序将消息记录到 Windows EventLog。

我首先尝试使用 EntLib Logginh 块,但是当失败时,我直接尝试使用 EventLog 类。它也失败了。他们不会抛出任何异常......只是不要写消息。 EntLib 确实将消息写入文件,但没有写入 Windows EventLog。

这是我的代码:

public static void LogMessage(string title, string message){

        //EventLog log = new EventLog();
        //log.Source = LOG_SOURCE;
        //log.WriteEntry(message, EventLogEntryType.Error);

        //EventLog.WriteEntry(LOG_SOURCE, message);

        LogWriter writer = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
        writer.Write(message);
    }

我在安装程序类中创建日志和源。让我知道我是否应该将代码放在这里。日志已正确创建,因为我可以在 EventViewer 中看到它。源创建正确,因为我可以在注册表的“EventLog\MyLog”文件夹中看到它。

我一直在阅读,有一篇文章指出以下行可能会有所帮助:

EventLogPermission perm = new EventLogPermission(EventLogPermissionAccess.Administer, ".");

            perm.PermitOnly();

但它没有。

如果有帮助,我的代码结构如下:

  1. 类库项目(这里是LogMessage方法)
  2. 类库项目(这里是捕获异常和调用LogMessage的方法)
  3. ASP Net Web 应用程序项目(网页。该层调用第 2 层。这也是我的安装程序类)
  4. Web 设置项目(具有指向 Web 设置项目输出的自定义操作)

你能帮忙弄清楚发生了什么吗???

谢谢

我找到了以下资源:“http://www.netframeworkdev.com/net-base-class-library/trouble-writing-to-eventlog-16723.shtml”,所以似乎不可能创建来自 ASP 的自定义日志...仍在调查中

【问题讨论】:

    标签: asp.net enterprise-library event-log


    【解决方案1】:

    尝试为Network Service 帐户提供适当的permissions

    【讨论】:

    • 在我怀疑您正在使用的 IIS 7 中,ASPNET 不再是默认的执行上下文帐户,而是它的网络服务,因此为网络服务提供适当的权限应该会有所帮助
    • 嗨@kd7 我读过...但我无法直接访问服务器...我只会提供安装程序。无论如何,这是正确的答案。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多