Служба WCF заблокирована брандмауэром Windows

У меня есть служба WCF с использованием HttpBinding. Служба работает в процессе самостоятельного хостинга (служба Windows), и этот процесс находится в списке исключений брандмауэра Windows.

Если брандмауэр активен, и я пытаюсь получить доступ к службе с помощью клиента С# или Internet Explorer, служба не отвечает. Но если брандмауэр отключен, соединение работает как шарм.

У кого-то есть эксплойты с WCF и брандмауэром Windows? Проблема возникла на Windows 7 64bit. Я еще не пробовал другую ОС.

Что я должен сделать, чтобы это работало с активным брандмауэром?

С уважением Майкл

EDIT: Я нашел ключ, что http.sys необходимо добавить в список исключений брандмауэра, так как сам хостинг wcf использует http.sys. Любые советы, как это решить?

EDIT: Я попытался открыть все прослушивающие порты вручную, что тоже работает, но это не вариант, потому что я не знаю их заранее.

Ответ 2

Насколько я знаю, добавление самообслуживаемого процесса WCF-сервиса в брандмауэр не работает, потому что это не тот процесс, который принимает входящие вызовы, он работает только, если

  • добавить служебный порт в исключение глобального порта
  • добавить процесс входящего демона WCF для обработки исключения, я не уверен в http, но для привязок net.tcp вам нужен файл $FrameworkDir/SMSvcHost.exe вместо вашего процесса.