2009-11-16 20 views
0

我有一個應用程序,它使用DirectoryEntry對象(在System.DirectoryServices中)訪問有關在遠程計算機上的IIS上運行的網站的信息。替代本地安裝IIS以遠程訪問IIS?

任何運行該應用程序的客戶機都需要安裝IIS,或者應用程序在訪問IIS信息時引發System.Runtime.InteropServices.COMException。

有沒有一種方法,我可以只包括一個DLL,添加引用,或類似的東西能夠訪問該信息,而無需客戶端機器安裝IIS?或者是否有更好的方式來訪問那些也會繞過這個需求的信息(也許沒有System.DirectoryServices)?

編輯:再次看到這個問題,並看到問題herehere,我相信它是不可能使用DirectoryServices獲取此信息。我會打開它的替代方案建議,也許有關WBEM腳本的更多信息?

回答

1

所以我所知道的是,你試圖從遠程IIS服務器獲取網站信息,但試圖獲取該信息的客戶端必須安裝IIS以便能夠查詢這些遠程系統。這不是因爲它使用某種網絡應用來獲取信息;它使用了安裝IIS時安裝的一些功能。

你以後有什麼樣的信息?您不能使用針對IIS計算機的WBEM腳本來獲取您之後的信息嗎?

+0

我不知道,什麼是WBEM腳本? ;)我試圖獲取在IIS中運行的任何網站的文件路徑和網站名稱/友好名稱。除了要求在客戶端上安裝IIS之外,DirectoryServices還是很棒的。 – 2009-11-16 15:29:18

0

經過進一步研究:

克里斯談論WMI腳本和System.Management命名空間,這是你連接到IIS 6或以上罰款,只要工作。

DirectoryServices需要安裝IIS,因爲它向ADSI添加了額外的位,允許它查詢IIS。另外,如果您使用IIS 5(Windows XP)或IIS 7(Windows 7)來獲取正確的ADSI組件,則需要安裝IIS 6兼容性管理器。

IIS 7有一個最後的選擇,它是Microsoft.Web.Administration命名空間。

不幸的是,在我的方案中,我需要同時使用IIS 5和IIS 6,這意味着DirectoryServices是獲得我需要的唯一方法。幸運的是,我相信只需要安裝一個兼容性管理器而不是整個IIS服務器(希望這是Windows XP的一個選項......)

接受Chris作爲WBEM建議的答案,儘管我可以在這種情況下不要使用它!