2011-06-10 79 views
0

我开发了一个.NET服务,它在我的开发计算机上运行良好很多年了。我测试过部署它并从未遇到过任何权限问题。服务EventLogPermission失败

当我来到服务部署到测试位置,但是,我在迎接这个错误:

Request for the permission of type 'System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

服务有权写入事件日志,因为它实际上并写了一些事件。

这里可能会发生什么?

P.S.我不准备调整任何安全区或在特殊帐户下运行我的服务。

+2

哇。所以你问了这个问题,并在14秒内找到并输入了答案。你太快了! :)。 – 2011-06-10 02:33:09

回答

0

问题在于服务在运行时加载了一些程序集,而在我的测试部署中,我指向使用UNC网络共享的程序集(在应用程序配置中)。 (例如\ machine \ d $ ...) 在我的开发部署中,我使用本地绝对引用(D:......)指向它

LocalSystem帐户拥有非常严格的权限,包括不能够访问远程机器上的文件。另外,.Net Framework通常不喜欢运行远程程序集。

我们知道这一点,但是在部署过程中,我的思维开始滑落。

将组装路径更改为本地表单解决了此问题。