是否可以通过编程方式在IIS中启动/停止应用程序池或网站?

时间:2009-07-18 20:42:20

标签: .net iis web application-pool

我正在尝试从同一服务器上的Web界面中找到停止,启动,重新启动/回收网站和应用程序池的方法。理想情况下,这是我可以用.NET做的事情而不必执行shell命令。

(我看到其他相关问题已被提出但我不想从命令行执行此操作,除非有必要)。

我需要能够为IIS6和IIS7执行此操作。

2 个答案:

答案 0 :(得分:3)

您正在寻找Microsoft.Web.Administration.ServerManager课程。您可以在此处找到一些入门代码:http://learn.iis.net/page.aspx/226/microsoftwebadministration/

您可以进一步探索该代码以执行您想要的操作。我相信整个appcmd都是在这个框架之上编写的。

此框架不适用于IIS6及更低版本。你需要IIS7。对于II6,您可以使用Mehmet Aras建议的WMI方法。不幸的是,你需要这两个库;或者也许有一些代码可以抽象出这些库。

答案 1 :(得分:2)

您可以使用WMI(Windows Management Instrumentation)。查看msdn上的Using WMI to Configure IIS。您还可以访问WMI提供程序并与它们进行交互,包括来自C#代码的IIS。 System.Management命名空间是一个可以开始的地方。

我要提醒您的一件事是找出.NET中的WMI代码是否需要完全信任,因为您希望能够在不完全信任的.NET Web应用程序中执行此操作默认情况下。