簡體   English   中英

如果我想使用Microsoft.Web.Administration,那么IISReset的等價物是什么

[英]What is the equivalent of an IISReset if I want to use Microsoft.Web.Administration

看起來涉及的不僅僅是迭代ApplicationPools並在它們上調用Recycle()。 如何在不訴諸shell調用的情況下以編程方式(來自.Net)最接近地模仿IISReset?

我認為最重要的是:IISReset是否有通過Microsoft.Web.Administration命名空間中提供的工具無法實現的功能?

您可以通過啟動或停止以下服務來使用System.ServiceProcess.ServiceController(通過此答案獲得了想法):

-Windows進程激活服務(WAS)
- 萬維網發布服務(W3SVC)

這里有一些代碼可以完成這項工作:

//stop iis (like running "IISReset /Stop")
ResetService("WAS", false);
ResetService("W3SVC", false);

//start iis (like running "IISReset /Start")
ResetService("WAS", true);
ResetService("W3SVC", true);

private static void ResetService(string name, bool start)
{
    using (var service = new System.ServiceProcess.ServiceController(name))
    {
        if (start && service.Status == ServiceControllerStatus.Stopped)
        {
            service.Start();
        }
        else if (!start && service.Status == ServiceControllerStatus.Running)
        {
            service.Stop();
        }
    }
 }

對於其他IISReset命令,您可以足夠輕松地編寫超時代碼。 要重新啟動計算機,請查看此答案 如果您需要更多詳細信息,請與我們聯系。

但是,如果這對你們來說還不夠,那么你總是可以使用這種技術在c#中執行power shell腳本(如果你只是需要完成,那就太漂亮了)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM