我正在尝试将一个ASP.NET应用程序从Server 2003(和IIS6)迁移到Server 2008(IIS7)。
当我尝试在浏览器上访问该页面时,会出现以下错误:
“/”中的服务器错误应用程序。
安全性异常
描述:应用程序尝试执行安全策略不允许的操作。若要授予此应用程序所需的权限,请联系系统管理员或更改配置文件中的应用程序信任级别。
异常详细信息: System.Security.SecurityException:未找到来源,但无法搜索某些或所有事件日志。不可访问的日志:Security
源错误:
当前 Web 请求的执行期间生成了一个未经处理的异常。可以使用下面的异常堆栈跟踪标识异常的起源和位置。
堆栈跟踪:
[SecurityException: 未找到来源,但无法搜索某些或所有事件日志。不可访问的日志:Security。]
System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly) +562 System.Diagnostics.EventLog.SourceExists(String source, String machineName) +251
[snip]
我所做的解决方法如下:
给“Everyone”在注册表键
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security
上赋予完全访问权限。这有效果,但在生产中无法这样操作。因此,我在运行应用程序几分钟后删除了“Everyone”的许可,并出现了错误。我使用提升的权限在应用程序日志和安全日志中创建了来源(并通过regedit验证了其存在),但错误仍然存在。
我在
web.config
文件中(以及使用appcmd.exe
)将应用程序设置为完全信任级别,但没有效果。
有没有人对这里可以做些什么有想法?
PS:这是对该问题的跟进。我按照给出的答案尝试了,但无济于事(请参见上述#2)。