我开发了一个.NET服务,它在我的开发机器上运行了很长时间。我已经测试过部署它并且从未遇到过任何权限问题。
然而,当我将服务部署到测试位置时,我遇到了这个错误:
Request for the permission of type 'System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
该服务有权写入事件日志,因为它实际上写了一些事件。
这可能会发生什么?
P.S。我不准备调整任何安全区域或在特殊帐户下运行我的服务。
答案 0 :(得分:0)
问题是服务在运行时加载了一些程序集,在我的Test部署中,我使用UNC网络共享指向了程序集(在应用程序配置中)。 (例如\ machine \ d $ ...) 在我的开发部署中,我使用本地绝对引用(D:......)
指向它LocalSystem帐户具有非常严格的权限,包括无法访问远程计算机上的文件。此外,.Net Framework通常不喜欢运行远程程序集。
我们知道这一点,但在部署期间它让我不知所措。
将程序集路径更改为本地表单解决了此问题。