2014-12-18 2 views
1

Я попытался запустить веб-сервер nancyfx в режиме самостоятельного хостинга. Все отлично работает при выполнении следующего кода:Nancyfx self hosting over HTTPS

public static void Main(string[] args) 
{ 
     var hostConfig = new HostConfiguration 
     { 
      UrlReservations = new UrlReservations 
      { 
       CreateAutomatically = true 
      },   
     }; 

     var host = new NancyHost(hostConfig, new Uri("http://localhost:8081")); 
     host.Start(); 

     Console.ReadLine(); 

     host.Stop(); 
} 

Однако, когда я изменяю Урьте на HTTPS запуска сервера, но каждое соединение открыто в браузере мгновенно закрываются и браузер отображает «Веб-сайт не доступен» , Соединение даже закрыто до того, как браузер закроет соединение из-за таймаута.

Я запускаю приложение с .NET 4.5 в Windows. Используя netstat -a, я могу сказать, что правый порт открыт.

Я что-то упустил? Спасибо за помощь.

ответ

8

Я получил это работает. Я нашел полезным провести несколько проверок в этом процессе.

CHECK1 - Импорт сертификата ok: - После установки сертификата на машинный запуск certutil -store MY - Вы можете просмотреть информацию о сертификате там (sha/user created/name etc) - Если не STOP. Вероятно, вы импортированы в хранилище пользователей (или сертификат недействителен). Вы ДОЛЖНЫ начать с пустых mmc и импортировать сертификаты для MACHINE.

CHECK2 - url добавлен в список urlacl в netsh - после добавления uri в acl run netsh http show urlacl - Если ваш uri/port не указан STOP. URL не добавлен правильно.

CHECK3 - ssl привязан к urlacl - после запуска команды добавления sslcert netsh http show sslcert - Если ваша комбинация портов/sha отсутствует в списке, тогда проверьте, что sha не имеет пробелов/appid уникально/app id + фигурные скобки, окруженные кавычками (если выполняется от PS)

Надеюсь, что это поможет. Я создал вышеупомянутое после 6 часов головокружения. Теперь это работает!

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