2013-02-18 74 views
0

上使用下面的代碼工作每次我除了我的Windows服務器操作系統進行測試在2012年機:問題與INetFwMgr Windows Server 2012中

public static Type FwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr"); 

public static void Main() 
{ 
    var fwMgr = (INetFwMgr) Activator.CreateInstance(FwMgrType); 

    var ssh = fwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Item(22, 
     NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP); // throws FileNotFoundException 

    ssh.RemoteAddresses = "123.234.123.235"; 
} 

創建該ssh變量的行拋出:

系統找不到指定的文件。 (異常來自HRESULT:0x80070002)

我不明白是什麼文件,它無法找到。機器上存在FirewallAPI.dll。我甚至使用tlbimp.exe在服務器上構建了互操作程序集。

有人可以幫忙嗎?

回答

0

原來,問題在於我找不到的防火牆規則。我之後的特定規則是由我使用的服務器創建的。當我刪除該規則並手動重新創建時,事情就開始奏效。

FileNotFoundException讓我相信在操作系統的內部缺少某些東西。