環境: Visual Studio 2008/SQL Server 2005
オペレーティング システム: Windows Server 2003
以下のコードを使用して、IIS で Web サイトを作成およびホストしています。初めて、Web サイトが正常に作成および削除されましたが、IIS 6.0 で Web サイトを再作成/ホストしているときに、次の行にエラーがスローされます。
object websiteId = (object)w3svc1.Invoke("CreateNewSite", newsite);
エラー:
Message = "呼び出しのターゲットによって例外がスローされました。"
内部例外: InnerException = RPC サーバーを利用できません。(HRESULT からの例外: 0x800706BA)
[System.Reflection.TargetInvocationException] = {"呼び出しのターゲットによって例外がスローされました。"}
DirectoryEntry w3svc1 = new DirectoryEntry("IIS://localhost/W3SVC");
//Create a website object array
object[] newsite = new object[] {
"TelnetProbeService",
new object[] { "*:90:" },
"c:\Test"
};
//invoke IIsWebService.CreateNewSite
object websiteId = (object)w3svc1.Invoke("CreateNewSite", newsite);
w3svc1.Properties["ServerAutoStart"][0] = true;
w3svc1.Properties["AuthNTLM"][0] = true;
w3svc1.Properties["AccessScript"][0] = true;
w3svc1.Properties["AccessFlags"][0] = 513;
w3svc1.Properties["AuthAnonymous"][0] = true;
w3svc1.Properties["AccessRead"][0] = true;
w3svc1.Properties["AccessWrite"][0] = false;
w3svc1.Properties["AccessScript"][0] = true;
w3svc1.Properties["AppPoolId"].Value = @"DefaultAppPool";
w3svc1.CommitChanges();
以下のコードを使用して、IIS で Web サイトを削除しています。
DirectoryEntry w3svc = new DirectoryEntry(
"IIS://localhost/W3SVC",
"SYNAPSE\rcatsadmin",
"Global@123",
AuthenticationTypes.Anonymous);
foreach (DirectoryEntry server in w3svc.Children)
{
if (server.SchemaClassName == "IIsWebServer")
{
if (server.Properties["ServerComment"][0].ToString() == "TelnetProbeService")
{
server.DeleteTree();
server.CommitChanges(); //THROWING ERROR
}
}
}
また、マシンの管理者権限も持っています。IIS 6.0 で Web サイトの削除と再作成/ホスティングの間に msi を実行しています。