0

Используя следующий код работает на всех ОС я тестируется на моем Windows Server 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 существует на компьютере. Я даже построил сборку interop на сервере с помощью tlbimp.exe.

Может кто-нибудь помочь?

ответ

0

Оказывается, проблема заключалась в том, что правило брандмауэра, на которое я нацеливался, не удалось найти. Определенное правило, которое я использовал, было создано сервером, который я использую. Когда я удалил это правило и воссоздал вручную, все стало работать.

FileNotFoundException заставил меня поверить, что в кистях операционной системы чего-то не хватает.

Смежные вопросы