如何设置我的Web API应用程序以通过网络提供?

时间:2014-01-30 21:56:23

标签: iis azure asp.net-web-api iis-express applicationhost

我可以从浏览器或其他应用程序(例如Windows窗体应用程序)连接到我的Web API应用程序,转到:

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

...但是如何让其他人(在同一网络上)可以使用localhost,以便他们可以进行相同的REST调用?

这只是他们连接到我的机器的问题,如下:

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

......如果是这样,我需要做些什么来使其可访问(如果有的话)?

无论如何,我真的不想在我的机器上一直运行我的Web API应用程序,所以:我如何设置它以便它可以全天候运行而无需启动/保姆吗?

Azure网站是否可以作为此选项的有效选项?

更新

可能(基于我读到的here)改变了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 个答案:

答案 0 :(得分:1)

您可以选择:

  • 购买Rasperberry Pi,以便运行独立的服务器/服务而不是您的机器
  • 购买VPS
  • 打开路由器上的防火墙端口
  • 使用您的智能手机(是的,这是可能的)
  • 更改您的主机文件(windows,linux,mac)

没有奇迹;)