Как получить удаленный доступ к собственной службе Nancy?
Я создаю простую службу Windows, в которой размещается экземпляр Nancy, чтобы предоставлять представления его внутренних данных. Все работает как положено при использовании браузера на локальной машине; Я вижу мнение, что это подает. Тем не менее, я не могу найти причину, по которой он не будет получать доступ из удаленного браузера (в той же сети). Доступ из удаленного браузера просто задерживается; IE в конечном итоге будет отображать "Эта страница не может быть отображена;" Safari на iPad некоторое время показывает частичный индикатор выполнения и ничего не делает.
Я использую все локальные IP-адреса, а не только localhost. Я используюGetUriParams()
функция по этой ссылке, чтобы обнаружить все локальные IP-адреса для привязки.http://www.codeproject.com/Articles/694907/Embed-a-web-server-in-a-windows-service
_nancyHost = new NancyHost(GetUriParams(port));
_nancyHost.Start();
На этой странице я обнаружил, что привязка к localhost работает только для локального доступа.http://forums.asp.net/t/1881253.aspx?More+SelfHost+Documentation
IP-адреса, обнаруживаемые этой функцией, относятся к адаптеру Ethernet, беспроводному адаптеру и двум сетевым адаптерам VMware от предыдущей установки проигрывателя VMware. Я пробовал удаленный доступ как по имени машины, так и по буквальному IP к адаптеру Ethernet.
Я добавил записи в список urlacl. Я использовалnetsh http add urlacl
Команда, как рекомендуется во многих местах, в том числе по этой ссылке:Удаленный доступ к Nancy Self Host
Если я выполнюnetsh http show urlacl
Я вижу запись для порта, который я использую.
Я пробовал разные конфиги Нэнси Если я установлю параметр конфигурации Nancy для UrlReservations.CreateAutomatics, я получу подсказки безопасности, которые после разрешения я вижу новые записи вnetsh http show urlacl
вывод списка для всех локальных IP-адресов, но он по-прежнему не разрешает удаленный доступ. Я также попробовал опцию RewriteLocalHost true и false.
Я пытался начать Нэнси сhttp://+:3684
или жеhttp://*:3684
(который получает синтаксический анализ отUri()
) и сhttp://0.0.0.0:3684
(который получает исключение изAddAllPrefixes()
вHttpListener()
).
Я добавил EXE в брандмауэр Windows Я создал исключения брандмауэра, как описано здесь:https://msdn.microsoft.com/en-us/library/ms733768.aspx
Связанное правило показывает Private, Public и «Any» для каждого столбца с TCP и UDP.
Я пытался запустить Нэнси в разных средах. Я запустил код: служба Windows, работающая как локальная система, консольное приложение в отладчике Visual Studio 2013 и консольное приложение «Запуск от имени администратора».
Я предполагаю, что это простая настройка безопасности, но я уже несколько дней гуглял, искал и пробовал разные вещи.
Чего мне не хватает?