![](/img/trans.png)
[英]How to add child application using 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.