Как настроить приложение Web API, чтобы оно было доступно по сети?

Я могу подключиться к своему приложению Web API из браузера или из другого приложения (например, приложения Windows Forms), выполнив:

http://localhost:28642/api/inventoryitems/GetAll

... но как я могу сделать localhost доступным для других (в той же сети), чтобы они могли делать те же самые вызовы REST?

Это просто вопрос их подключения к моей машине, вот так:

http://platypus:28642/api/inventoryitems/GetAll

... и если да, что я должен сделать, чтобы сделать его доступным (если что-нибудь)?

В любом случае, я не хочу, чтобы мне постоянно приходилось запускать мое приложение Web API на моей машине, поэтому: как я могу настроить его так, чтобы оно работало 24/7 без необходимости запуска / присмотра за ребенком?

Будет ли веб-сайт Azure подходящим вариантом для этого?

ОБНОВИТЬ

Это может быть (основываясь на том, что я прочитал здесь), что изменение applicationhost.config из этого:

<site name="HandheldServer" id="20">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/"  physicalPath="C:\HandheldServer\HandheldServer" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:28642:localhost" />
      <binding protocol="http" bindingInformation="*:28642:platypus" />
      <binding protocol="https" bindingInformation="*:44300:localhost" />
    </bindings>
</site>

...к этому:

<site name="HandheldServer" id="20">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\HandheldServer\HandheldServer" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:28642:localhost" />
      <binding protocol="http" bindingInformation="*:28642:platypus" />
      <binding protocol="http" bindingInformation="*:28642:" />
      <binding protocol="http" bindingInformation=":28642:" />
      <binding protocol="https" bindingInformation="*:44300:localhost" />
    </bindings>
</site>

... сделает его доступным (но мне нужно будет запустить его или IISExpress запустит его в фоновом режиме?)

Предположительно, первая запись уже может сделать ее доступной. Я не знаю, нужен ли префикс *, поэтому у меня есть запись как с так и без.

1 ответ

Решение

У вас есть выбор:

  • купите Rasperberry Pi, чтобы вместо вашего компьютера работал независимый сервер / сервис
  • купить VPS
  • откройте порты брандмауэра на вашем роутере
  • использовать свой смартфон (да, это возможно)
  • измените свой файл hosts (windows, linux, mac)

чуда нет;)

Другие вопросы по тегам