簡體   English   中英

是否有托管API來管理IIS 8?

[英]Is there a managed API to manage IIS 8?

在IIS7中,您曾經能夠使用Microsoft.Web.Administration dll來管理IIS。

我已將此引用添加到我的項目中,但運行以下代碼會導致site.Stop()中出現NotImplementedException

using (var server = new ServerManager())
{
    var site = server.Sites.FirstOrDefault(s => s.Name == instanceName);
    if (site != null)
    {
        site.Stop();
    }
}

是否有此API的更新版本或從.Net管理IIS的備用方法?

如果可能的話,我寧願不使用WMI或必須生成appcmd的實例。

我剛剛在IIS 8和7上測試了以下片段(分別使用來自Windows 8的GAC的7.9.0.0和來自nuget的2008 R2機器的7.0.0.0)

我沒有停止網站的問題:

var manager = new ServerManager();
manager.Sites[0].Stop();
manager.Dispose();

我唯一需要做的就是明確地以管理員身份運行Linqpad以使其工作。 也許那是你的問題? 除非您的應用程序清單強制要求,否則Windows 8 / Server 2012不會自動為您提供管理員訪問權限。 我相信這也適用於7/2008 R2,但是因為你明確標記了IIS8(UAC ftw!)而無關緊要

確保已啟用“模擬”,並且您正在使用正確的管理員信息為web.config中的模擬語句分配用戶和密碼。 這將緩解任何進一步的問題。

在web.config中添加此語句(如果它不是它們已經存在)。

<identity impersonate="true" userName="LOCALMACHINE\ADMINUSER" password="PASSWORD" />

還要在IISManager中確保您已將模擬設置為“已啟用”並且匿名身份驗證關閉為“已禁用”。

暫無
暫無

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

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