使用下面的C#代碼:當使用Microsoft.Web.Administration時,爲什麼我無法爲FTP站點獲取Site.State?
using System;
using Microsoft.Web.Administration;
namespace getftpstate
{
class Program
{
static void Main(string[] args)
{
ServerManager manager = new ServerManager();
foreach (Site site in manager.Sites)
{
Console.WriteLine("name: " + site.Name);
Console.WriteLine("state: " + site.State);
Console.WriteLine("----");
}
}
}
}
我得到以下輸出:
C:\projects\testiisftp\getftpstate\getftpstate\bin\Debug>getftpstate.exe
name: Default Web Site
state: Stopped
----
name: Default FTP Site
Unhandled Exception: System.Runtime.InteropServices.COMException (0x800710D8): T
he object identifier does not represent a valid object. (Exception from HRESULT:
0x800710D8)
at Microsoft.Web.Administration.Interop.IAppHostProperty.get_Value()
at Microsoft.Web.Administration.ConfigurationElement.GetPropertyValue(IAppHos
tProperty property)
at Microsoft.Web.Administration.Site.get_State()
at getftpstate.Program.Main(String[] args) in C:\projects\testiisftp\getftpst
ate\getftpstate\Program.cs:line 17
任何想法,爲什麼我可能會看到上述0x800710D8 COM的錯誤?我可以使用IIS管理器來管理FTP站點(我可以啓動,停止,更改設置等)。
我試圖使用WMI作爲一個變通,但你猜怎麼着,FTP站點在IIS元數據庫(當訪問通過WMI)的W3SVC節點下存儲,並且該網站的對於FTP站點,ServerState始終返回4,這意味着根據文檔「已停止」(即使它在IIS管理器中顯示爲已啓動)。 http://msdn.microsoft.com/en-us/library/ms524905(v=VS.90).aspx – 2010-06-09 12:21:14
此外,我已經提出了MS連接(請upvote,如果這會影響你):https://連接.microsoft.com/WindowsServerFeedback /反饋/信息/ 566045 /收到COMException-時,訪問站點狀態換一個-FTP站點,使用微軟的Web的管理 – 2010-06-09 12:29:48
只是試圖啓動,並通過雙方停止FTP站點MWA和WMI;都沒有工作,有類似的結果。但是,WMI並沒有默默地做任何事情,而不是拋出異常。 – 2010-06-09 13:01:17