1

我正在开发一个 ISAPI 扩展。如何使 ISAPI 扩展以回收(重新启动)它正在运行的应用程序池?

为了实现这一点,我可以禁用 Rapid-Fail Protection 并调用类似TerminateProcess(GetCurrentProcess(), 0); 但这会导致潜在的数据丢失。

我也可以通过执行外部程序来做到这一点%windir%\system32\inetsrv\appcmd.exe recycle apppool /apppool.name:"name of my app pool"但是这样我必须在某处配置应用程序池名称,并且池身份必须具有管理员权限。这也可以通过 WMI 完成,但也需要管理员权限。我不想授予我的应用程序池管理员权限。

那么有没有办法只给用户权限来重启应用程序池而不是完全的管理员权限?可能是本地安全策略中的某些设置?

或者唯一的解决方案是创建一个守护进程(服务),它将以管理员身份运行并等待来自我的 ISAPI 扩展的消息重新启动它?

4

0 回答 0