2014-10-27 3 views
19

Как сделать привязку хоста веб-API на всех сетевых интерфейсах?Веб-хост Web API - привязка ко всем сетевым интерфейсам

У меня есть код ниже. К сожалению, он связывается только с localhost. Таким образом, доступ к этому серверу из-за локального хоста не выполняется.

var baseAddress = string.Format("http://localhost:9000/"); 
      using (WebApp.Start<Startup> (baseAddress)) 
      { 
       Console.WriteLine("Server started"); 
       Thread.Sleep(1000000); 
      } 

ответ

29

Просто измените базовый адрес как этот

 var baseAddress = string.Format("http://*:9000/"); 
     using (WebApp.Start<Startup> (baseAddress)) 
     { 
      Console.WriteLine("Server started"); 
      Thread.Sleep(1000000); 
     } 

И он должен связать correctlly для всех интерфейсов.

+5

Я, кажется, использую http: // +: 9000 /. В чем разница между + и *? @ mauriciod73 – regisbsb

+7

Запустите визуальную студию как администратор, если вы получаете исключение Inv Invocation и «Access denied» – Fidel

+13

«В чем разница между + и \ *?» см. [UrlPrefix Strings] (https://msdn.microsoft.com/en-us/library/aa364698 (v = vs.85) .aspx). «+» - сильная подстановочная символика, * * - слабый подстановочный знак. Сильное здесь просто означает, что имя хоста входящего запроса сначала проверяется на это связывание, тогда как слабая привязка ('\ *') применяется после любых других привязок, таких как те, которые указывают явное имя хоста. Таким образом, вы можете настроить привязки для обслуживания разных ресурсов в зависимости от входящего URL-адреса, а привязка «\» связывает все, что явно не связано. – redcalx

5

связывает его с помощью: -

var baseAddress = string.Format("http://localhost:+:9000/"); 

Если вы получаете исключение доступа, пожалуйста, НЕ запускайте Visual Studio в качестве пользователя с правами администратора. Вместо этого добавьте резервирование URL. Запустите окно командной консоли администратора и выполнить:

netsh 
netsh> http add urlacl url="http://+:9000/" sddl=D:(A;;GX;;;S-1-1-0) 

SDDL переводится как «все пользователи» из текущего домена/машины.

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

  • Нет связанных вопросов^_^