12

Microsoft.Web.AdministrationIIS7 では、 dll を使用して IIS を管理することができました。

この参照をプロジェクトに追加しましたが、次のコードを実行すると at が発生NotImplementedExceptionsite.Stop()ます。

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

この API の更新バージョンまたは .Net から IIS を管理する別の方法はありますか?

WMI を使用したくないか、appcmd可能であればインスタンスを生成する必要があります。

4

2 に答える 2

4

IIS 8 と 7 の両方で次のスニペットをテストしました (Windows 8 の GAC の 7.9.0.0 と 2008 R2 マシンの nuget の 7.0.0.0 をそれぞれ使用)。

サイトを停止しても問題ありません。

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

私が特別にしなければならなかった唯一のことは、Linqpad を管理者として明示的に実行して、これを機能させることでした。おそらくそれはあなたの問題ですか?Windows 8 / Server 2012 では、アプリケーション マニフェストで義務付けられていない限り、管理者アクセスが自動的に付与されません。これは2008年7月R2にも当てはまると思いますが、IIS8に明示的にタグを付けたので関係ありません(UAC ftw!)

于 2013-06-13T14:14:08.803 に答える
0

「偽装」がオンになっていて、正しい管理者情報を使用して web.config の偽装ステートメントのユーザーとパスワードを割り当てていることを確認してください。これにより、さらなる問題が軽減されます。

まだない場合は、web.config にこのステートメントを追加します。

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

また、IISManager で、偽装をオンにして「有効」にし、匿名認証をオフにして「無効」にしていることを確認してください。

于 2014-05-04T04:30:37.657 に答える