我们在 Webfarm 上运行了多个 ASP.NET 应用程序,但是我们注意到事件日志中有很多错误条目:
无法获取 W3WP 进程的专用字节内存限制。ASP.NET 缓存将无法限制其内存使用,这可能会导致进程重新启动。
我们将网站文件存储在网络共享上,并将应用程序池运行在“网络服务”帐户下。我们执行了所有推荐的步骤(但问题仍然出现):
- aspnet_regiis –ga“网络服务”
- cscript metaacl.vbs IIS://Localhost/W3SVC/AppPools IIS_WPG RE
- 将“连接身份”帐户添加到 IIS_WPG 组。
- 允许“连接为”帐户作为服务登录。
答案1
执行脚本后您是否重新启动了 IIS 服务?这篇博文还建议使用此语句向过滤器授予权限:
cscript metaacl.vbs IIS://Localhost/W3SVC/Filters IIS_WPG RE
此错误是由于 IIS 元数据库中的权限不足这一已知问题引起的。
答案2
如果您移动此服务或者弃用某个域或者类似的东西,则另一种可能性是分配给您的元数据库的名义 IIS_WPG 权限适用于过时的 SID。
要了解实际分配了哪些权限:
cscript metaacl.vbs IIS://Localhost/W3SVC/AppPools
如果未列出 IIS_WPG 但列出了 SID,请运行以下命令添加 IIS_WPG:
cscript metaacl.vbs IIS://Localhost/W3SVC/AppPools IIS_WPG U
U(读取未担保的财产)对于此目的来说应该足够了。