程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 在C#中以編程的方式管理IIS7(1)

在C#中以編程的方式管理IIS7(1)

編輯:關於C語言

最先我需要在IIS下創建虛擬目錄,用的是DirecotryEntry這個類,怎麼也不能,總會報![System.Runtime.InteropServices.COMException]{"未知錯誤(0x80005000)"}

這個錯誤。

private static void TestDirectoryEntry()
{
try
{
string path = "IISWebService://" + System.Environment.MachineName + "/W3SVC";
System.Collections.ArrayList webSite = new System.Collections.ArrayList();
DirectoryEntry iis = new DirectoryEntry("IIS://localhost/W3SVC");
if (IIS != null)
{
foreach (DirectoryEntry entry in IIS.Children)
{
if (string.Compare(entry.ScheMaclassName, "IISWebServer") == 0)
{
Console.WriteLine(entry.Name);
Console.WriteLine(entry.PropertIEs["ServerComment"].Value.ToString());
Console.WriteLine(entry.Path);
}
Console.WriteLine();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}

後來瘋狂地找原因

第一步,找機子上安全方面的問題。我IIS7是裝在Windows server2008上的。我取消了系統的UAC。並用“以管理員身份”運行的該程序。結果還是不行。

第二步,在網上找有沒有人跟我碰到相同的問題。果然!很多人都有,網上給的解決方案是:

The IIS Metabase and IIS6 Configuration Compatibility is not automatically installed when you enable the Web Server role in Windows 2008 Server. If you enable this feature, your old DirectoryServices code in .Net should work like it used to.

需要安裝 IIS6 Metabase 兼容性組件

用了這種方案果然成功了!但事情並沒有結束。

第三步:找原因,為什麼IIS7 不能用這種方法!

功夫不負有心人!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved