簡體   English   中英

如何正確使用Microsoft.Web.Administration從網頁啟動應用程序池?

[英]how to use Microsoft.Web.Administration properly to start an application pool from a web page?

我的任務是找到一種從網頁重新啟動應用程序池的方法。 IIS由我們自己的IT部門托管,因此如有必要,將更改所需的任何安全設置。

我正在使用Microsoft.Web.Administration.dll並嘗試將其用於我的本地IIS(7.5):

            ServerManager serverManager = new ServerManager();
            ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
            foreach (ApplicationPool applicationPool in applicationPoolCollection)
            {
                appPoolNames.Add(applicationPool.Name);
                // If the applicationPool is stopped, restart it.
                if (applicationPool.State == ObjectState.Stopped)
                {
                    applicationPool.Start();
                }
            }

            // CommitChanges to persist the changes to the ApplicationHost.config.
            serverManager.CommitChanges();

如果我將此邏輯放在winform中並以本地管理員身份運行,則將啟動本地IIS中的應用程序池。 但是,如果我在網頁中放置相同的邏輯,則此行將在此行出現錯誤並出現錯誤:

if (applicationPool.State == ObjectState.Stopped)
Exception: System.ComponentModel.Win32Exception: Access is denied

我認為這是出於安全原因,但我已經將本地管理員用戶分配給我的應用程序池。 有沒有辦法在網頁上實現這一目標?

我假設該網頁與您要重新啟動的網頁不在同一個應用程序池中,這不是一個好主意(因為該網頁會突然失去其進程宿主)。 因此,假設它是一個不同的應用程序池,那么重要的是網頁應用程序池的標識-這將需要具有重新啟動目標應用程序池的權限。

暫無
暫無

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

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