在 Windows Server 2012 R2 Standard 上运行,带有 IIS 8.5.9600
在 C#
中,设置站点后,我将从该站点检索 DefaultAppPool。
检索池后,以下属性有异常:
appPool.State:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
appPool.WorkerProcesses
at Microsoft.Web.Administration.Interop.IAppHostElement.get_Collection()
at Microsoft.Web.Administration.ConfigurationElement.GetCollection(String collectionName, Type collectionType)
at Microsoft.Web.Administration.ApplicationPool.get_WorkerProcesses()
所以我不能打电话
AppPool.Recycle()
它抛出这个异常:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute()
at Microsoft.Web.Administration.ConfigurationMethodInstance.Execute()
at Microsoft.Web.Administration.ConfigurationElement.ExecuteMethod(String methodName)
at Microsoft.Web.Administration.ApplicationPool.Stop()
at EBI.Core.Common.WebHelper.IISHelper.AddApplicationIis7(String serverName, String applicationPool, String siteName, String applicationPath, String virtualDirectoryPath, String physicalPath, String defaultPage, Int32 deploymentType, String siteUrl)
网上研究说要给这个文件夹加高权限:
C:\Windows\System32\inetsrv\config
所以我越来越多地添加了以下内容:
- 系统
- 管理员
- IIS_IUSRS
- 互动
- 网络
- 服务
- 默认应用程序池
- 网络服务
- 创作者所有者
- 国际标准化组织
但仍然是同样的错误。
将所有这些权限添加到该文件夹可能不是一个好主意,所以我可能还缺少其他东西,但我找不到它是什么。有什么想法吗?
感谢您的帮助!
最佳答案
您是否尝试从任何控制台应用程序或 Windows 服务访问应用程序池?如果是这样,那么应该使用在服务器上具有管理员权限的用户名来执行控制台应用程序或 Windows 服务。用户名也应该是 IIS_WPG 组的一部分。可能是我完全弄错了你的问题。
关于c# - AppPool 属性上的 AccessDenied 异常,无法调用 ApplPool.Recycle() - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703280/