将ASP.NET应用程序迁移到IIS7时出现注册表访问错误

Ben*_*son 21 asp.net iis-7 windows-7

我正在运行Windows 7 64位和iis7.我正在尝试设置以前在XP上的iis6中的Web应用程序.它给了我下面的错误.我已将网络服务用户添加到性能监视器用户组中无济于事.

访问注册表项"全局"被拒绝.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.UnauthorizedAccessException:拒绝访问注册表项"Global".

ASP.NET无权访问所请求的资源.考虑将资源的访问权限授予ASP.NET请求标识.ASP.NET具有基本进程标识(通常是IIS 5上的{MACHINE}\ASPNET或IIS 6上的网络服务),如果应用程序未模拟,则使用该标识.如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户.

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择"属性",然后选择"安全"选项卡.单击"添加"以添加适当的用户或组.突出显示ASP.NET帐户,并选中所需访问的框.

Ben*_*son 23

问题是Windows中的用户称为DefaultAppPool.但是,他没有出现在安全对话框中的任何位置.他是一个真正的用户.我的问题是我需要该用户成为PerformanceMonitorUsers组的一部分,因为我的Web服务使用的是PerformanceCounters.事实证明,您必须从命令行执行此操作.

net localgroup"性能监视器用户"DefaultAppPool/add

偶尔这不起作用,它会给你错误:"没有这样的用户或组:DefaultAppPool"

以不同的方式添加用户:

  1. 转到Windows 7中的"开始"菜单.
  2. 在搜索框中输入"编辑用户".
  3. 打开"编辑本地用户和组".
  4. 转到groups文件夹.
  5. 右键单击"性能监视器用户"组,然后转到属性.
  6. 单击添加...按钮.
  7. 键入"IIS APPPool\DefaultAppPool",然后单击"检查名称".
  8. 单击确定,你应该很高兴.

  • 请注意,您的应用程序可能不使用DefaultAppPool,但例如"ASP.NET v4.0",也请注意可能需要重新启动Windows. (2认同)

小智 11

使用net localgroup"性能监视器用户""IIS AppPool\DefaultAppPool"/ add