【问题标题】:Remove port number from URL web API从 URL Web API 中删除端口号
【发布时间】:2017-01-01 23:40:52
【问题描述】:

我创建了一个 Web API 并将其托管在 IIS 7.0 上,但默认端口托管另一个 Web 应用程序。因此,我为 WEB API 指定了另一个端口。问题在于如何访问 Web API,因为它包括端口号和 URL。我想删除这个端口依赖,或者至少隐藏它。

所以不是 http://website:26018/api/products?brand_id=2,3

我希望它可以从这样的 URL 访问:

http://website/api/products?brand_id=2,3

我怎样才能做到这一点?

【问题讨论】:

  • 放到80端口...
  • 如果您想在特定端口上使用它,您必须指定该端口或使用端口 80(这是默认值)。否则,您可以创建防火墙规则,将来自 abc.whateever.com 的外部流量映射到您内部喜欢的任何内容
  • 您有一个选择是在 IIS 中设置主机标头,具体取决于这是本地、内部还是公共的,具体取决于这有多复杂。
  • IIS 需要该端口才能绑定到正确的网站。如果您想删除端口依赖并假设 URL 用于 API,我的建议是将基本 API URL 放入 AppConfig/WebConfig 中,然后在不依赖任何 URL 的情况下构建 API 请求 URL。
  • 为什么你在不同的端口上运行你的应用程序,顺便说一句?

标签: c# asp.net-mvc web asp.net-web-api


【解决方案1】:

http 规范 RFC2616(第 3.2.2 节)指出

如果端口为空或未给出,则假定端口为 80。

因此,要省略端口号,您必须将应用程序放在端口 80 上。

IIS 允许您将来自特定 DNS 地址的流量重定向到您的应用程序。看看这篇文章:http://www.visualwin.com/Host-Header/

【讨论】:

    猜你喜欢
    • 2014-07-18
    • 2011-07-04
    • 2015-08-17
    • 2016-02-06
    • 1970-01-01
    • 2014-12-18
    • 2018-08-16
    相关资源
    最近更新 更多