OWIN HttpListener не расположен

Когда я пытаюсь запустить:

WebApp.Start<SrvcHst>(new StartOptions { Port = 9956, 
     ServerFactory = "Microsoft.Owin.Host.HttpListener" });

Я получаю следующее исключение. Что может быть основной причиной?

System.MissingMemberException was caught
  HResult=-2146233070
  Message=The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener
  Source=Microsoft.Owin.Hosting
  StackTrace:
       at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveServerFactory(StartContext context)
       at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context)
       at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options)
       at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)

Ответ 1

Вы должны включить Microsoft.Owin.Host.HttpListener.dll в свои ссылки на проект.

Вы можете добавить его через NuGet.

Однако, если выполняемый код:

WebApp.Start<SrvcHst> (...);

содержится в библиотеке классов, убедитесь, что исполняемый файл, потребляющий библиотеку, также включает ссылку на Microsoft.Owin.Host.HttpListener.dll, иначе он не будет развернут с вашей программой, так как нет явных ссылок на него из библиотеки классов.

Посмотрите на свою папку bin/Debug и убедитесь, что там есть DLL.

Ответ 2

Убедитесь, что у вас установлен пакет Microsoft.Owin.Host.HttpListener

Чтобы установить пакет, используйте эту командную строку:

Install-Package Microsoft.Owin.Host.HttpListener

Ответ 3

Иногда ссылки NuGet добавляются в неполном состоянии. Если у вас установлены пакеты, однако ссылки не включены, попробуйте переустановить их через:

Update-Package -reinstall

в консоли менеджера пакетов.

Ответ 4

Небольшое дополнение к Пьеру и Дамиту. Если вы используете Mac OS, выполните следующую команду для установки HttpListener:

dnu install Microsoft.Owin.Host.HttpListener