最近开发完成一个新项目,要部署到公司演示环境时出现以下问题:
system.security.securityException:不允许所请求的注册表访问权。
公司演示环境系统是windows2003。该问题也是在2003上部署才出现的,而在windows2000下不会出现。(没部署在xp上,不知道会不会出现同样问题。)
有一点比较奇怪的是,我们一个测试机也是2003,又不出现上述问题。后来发现是有人把那个项目的虚拟目录的匿名访问设置为该测试机的Administrator帐号,显然是存在很大安全隐患的。
我试也把演示环境那台机子的匿名访问设置为admin,却发现问题没有解决。
最后在网上搜索了一下, 发现造成这个的原因是MSEL中:Instrumentation 目录下有操作日志、性能的代码。而这些代码需要一定的权限才可以执行。
解决方案:
1、将MSEL的Common的工程的项目[条件编译参数]只保留[DEBUG;TRACE]原来参数为[DEBUG;TRACE;USEWMI;USEEVENTLOG;USEPERFORMANCECOUNTER]。
2、重新编译生成 Microsoft.Practices.EnterpriseLibrary.Common.dll
详细解决方案见如下网页:
http://dotnetjunkies.com/WebLog/sskokku/archive/2005/03/25/61376.aspx
浙公网安备 33010602011771号