我在.Net中有一个应用程序,用于为其他应用程序进行各种管理/配置。 我需要能够停止和启动应用程序池。 我已经实现了这一点,但只有在以本地系统运行应用程序池时才可以实现(这通常被认为是一个坏主意)。最初,我使用Process.Start(使用适当的ProcessStartInfo对象)启动了appcmd.exe,但这最终使我得到了一个-1073741502的退出代码,进一步的研究表明我需要使用Windows SDK进行调试,因为它与未加载程序集有关。因此,我在Microsoft.Web.Administration命名空间中找到了一个似乎更简单的解决方案:我使用以下代码,但似乎要求运行它的AppPool具有本地系统的身份(否则我会收到System.UnauthorizedAccessException)--是否有一种方法以较低的权限账户启动/停止(我更喜欢使用应用程序标识),尽管暂时提升权限也可接受。
我已将自定义帐户设置为标识,但我无法确定该用户的最小ACL需要什么。 作为测试,我将用户添加到本地管理员组,但仍然收到“System.UnauthorizedAccessException” - 这表明我需要为用户配置特定权限,但我不确定这是什么或如何做到这一点。 有人能帮忙吗? 问题在此处也有解释
Dim serverManager As New ServerManager()
Dim applicationPoolCollection As ApplicationPoolCollection = serverManager.ApplicationPools
For Each applicationPool As ApplicationPool In applicationPoolCollection
If applicationPool.Name = appPoolName Then
applicationPool.Stop()
applicationPool.Start()
End If
Next
我已将自定义帐户设置为标识,但我无法确定该用户的最小ACL需要什么。 作为测试,我将用户添加到本地管理员组,但仍然收到“System.UnauthorizedAccessException” - 这表明我需要为用户配置特定权限,但我不确定这是什么或如何做到这一点。 有人能帮忙吗? 问题在此处也有解释