【问题标题】:503 service unavailable IIS + localhost + WebAPI + VS Android Emulator .Net Core 2503 服务不可用 IIS + localhost + WebAPI + VS Android Emulator .Net Core 2
【发布时间】:2018-12-14 03:01:13
【问题描述】:

我没有其他想法。

我在 IIS 上的本地主机上运行了 WebAPI (.NetCore 2)。当我使用 Postman 连接到它时,一切正常。但是当我尝试从 VS Android Emulator 连接时,我只收到 503 错误。我想我什么都试过了。

我的设置是: - WebApi 在 8080 端口上运行

我的 VS Emulator 网络设置为:

我正在使用以下方式连接到 WebApi: http://169.254.80.80:8080/api/

在本地主机上(例如来自 Postman)是: http://localhost:8080/api/

我已将传入规则添加到我的 Windows Defender,允许连接 TCP 端口 8080。

这是我来自 applicationhost 的 SITES 部分。

<sites>
  <site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
      <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation=":8080:localhost" />
    </bindings>
  </site>
  <site name="Nerdolando.Boomerang.WebAPI" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="D:\projekty\cs\Boomerang\source\webapi\Nerdolando.Boomerang.WebAPI" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:50628:localhost" />
      <binding protocol="http" bindingInformation="*:50628:169.254.80.80" />
      <binding protocol="http" bindingInformation="169.254.80.80:8080" />
      <binding protocol="http" bindingInformation="*:8080:169.254.80.80" />
    </bindings>
  </site>
  <siteDefaults>
    <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
    <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
  </siteDefaults>
  <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
  <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

如您所见,我尝试了不同的绑定。并且仍然收到 503 错误。我还能做什么?

【问题讨论】:

  • 您是否在自己的托管 Web 服务的计算机上尝试http://169.254.80.80:8080/api/?您是否使用网络代理来处理正常的互联网流量?如果代理无法完成请求,它会给你一个 503。
  • 我在本地机器上做。不要使用任何代理。也许模拟器使用代理?如何查看?
  • 那是你的公网IP吗?要使用您自己的公共 IP 连接到您自己的计算机,您的路由器或 ISP 需要设置为环回流量,但可能不会。
  • 不,169.* 不是我的公共 IP。我的公共 IP(在路由器上)是 217.*。我家网的公网IP是192.168.*
  • 您可以尝试在 Postman 中使用 http://169.254.80.80:8080/api/ 吗?它也给你503吗?如果是这样,该消息是否有任何正文(带有错误消息)?

标签: c# android iis .net-core-2.0


【解决方案1】:

您的 IIS 绑定错误:http:*:8080:localhost

您在“主机名”字段中有“localhost”。这意味着如果使用“localhost”作为域名,IIS 只会将流量发送到该站点。由于您尝试通过 IP 访问,IIS 不知道将其发送到哪个站点并为您提供 503。

您的绑定应如下所示(将“主机名”留空):

【讨论】:

  • 天啊!你太棒了!我已经为此奋斗了好几天,甚至想放弃手机!非常感谢你!
  • 没问题 :) 我以前也用绑定过。一开始我只是没有注意到它,因为我通常不会从那个视图中查看绑定。
猜你喜欢
  • 2020-05-30
  • 2021-06-16
  • 2011-07-22
  • 2015-06-10
  • 1970-01-01
  • 2017-03-26
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多