相关疑难解决方法(0)

写入事件日志时出现System.Security.SecurityException

我正在努力尝试将ASP.NET应用程序从Server 2003(和IIS6)移植到Server 2008(IIS7).

当我尝试访问浏览器上的页面时,我得到了这个:

'/'应用程序中的服务器错误.

安全例外

说明:应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别.

异常详细信息:System.Security.SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

堆栈跟踪:

[SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全.]

System.Diagnostics.EventLog.FindSourceRegistration(String source,String machineName,Boolean readOnly)+562 System.Diagnostics.EventLog.SourceExists(String source,String machineName)+251

[剪断]

这些是我为尝试解决它而做的事情:

  1. 授予"Everyone"对密钥的完全访问权限HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security.这很有效.但我自然不能在生产中这样做.所以我在运行应用程序几分钟后删除了"Everyone"权限,错误重新出现.

  2. 我在应用程序日志和安全日志中创建了源代码(我通过regedit对其进行了验证)在安装期间使用提升的权限,但错误仍然存​​在.

  3. 我在应用程序中给了应用程序一个完整的信任级别web.config(并使用appcmd.exe),但无济于事.

有没有人能够了解这里可以做些什么?

PS:这是对这个问题的跟进.我按照给出的答案但没有用(见上面的#2).

windows asp.net iis-7 exception-handling event-log

186
推荐指数
10
解决办法
29万
查看次数

找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

我收到错误:

找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

当我在代码下运行以捕获Win 2K12 R2服务器IIS 8.5上的错误时

EventLog elog = new EventLog();
EventLog.CreateEventSource("MyApp", "Application");
EventLog.WriteEntry(Source, swError.ToString(), EventLogEntryType.Error);
Run Code Online (Sandbox Code Playgroud)

我已经完全访问HKLM\SYSTEM\CurrentControlSet\services\eventlog但它仍然没有工作.我该怎么做才能修好它?

c# iis event-log iis-8

61
推荐指数
6
解决办法
15万
查看次数

我需要更改以允许我的IIS7 ASP.Net 3.5应用程序创建事件源并将事件记录到Windows EventLog?

在IIS 7下运行的ASP.Net 3.5似乎不允许开箱即用.

        if (!EventLog.SourceExists("MyAppLog"))
            EventLog.CreateEventSource("MyAppLog", "Application");

        EventLog myLog = new EventLog();
        myLog.Source = "MyAppLog";
        myLog.WriteEntry("Message");
Run Code Online (Sandbox Code Playgroud)

asp.net permissions iis-7 event-log .net-3.5

32
推荐指数
3
解决办法
4万
查看次数

如何写入自定义事件日志?

我正在尝试将我的.Net Windows服务转到自定义事件日志.我正在使用EventLogInstaller安装应用程序时创建事件日志和源.我在这里读到,Windows注册源需要一段时间,因此他们建议您在尝试写入日志之前重新启动应用程序.

由于这是Windows服务,我不想强​​制重新启动计算机或让用户手动启动服务,因此我使用此代码等待日志存在,然后自动启动服务.

while (!(EventLog.Exists("ManageIT") || EventLog.SourceExists("ManageIT Client Service")))
{
    Thread.Sleep(1000);
}

System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("ManageIT.Client.Service");
controller.Start();
Run Code Online (Sandbox Code Playgroud)

我的问题是来自服务的事件仍然写入应用程序日志,虽然我可以在注册表编辑器中看到我的自定义日志,但它不会显示在Windows 7事件查看器中.

任何帮助都感激不尽.

.net c# windows-services event-log

4
推荐指数
1
解决办法
2万
查看次数