【问题标题】:ASP.NET application is reachable as localhost but not 127.0.0.1ASP.NET 应用程序可作为 localhost 访问,但不是 127.0.0.1
【发布时间】:2015-04-08 19:02:50
【问题描述】:

我正在测试一个 ASP.NET 应用程序,默认情况下我的项目在调试模式下的 URL 当然是这样的:

http://localhost:61660/

现在,来自 Linux 世界,并将我过去从网络课程中学到的知识汇总起来,我知道除了使用 localhost 之外,您还可以使用 127.0.0.1 或您的 LAN IPv4 地址,这可能是什么比如 10.75.88.252,你可以使用 ipconfig 命令获得。

但是,一旦您进入 Microsoft 网络,Windows 似乎会采用这些规则并在顶部添加一层以进一步复杂化已经足够复杂的计算机网络网络 WORKGROUPS 和“计算机名称”,它们的行为似乎类似于某种 Intranet DNS。

所以我的主要问题是,在调试 ASP.NET 应用程序时,这个 URL 为何能在 Visual Studio 中完美运行:

http://localhost:61660/

但是下面这两个:

http://127.0.0.1:61660/

http://10.75.88.252:61660/

它们根本不起作用,即使 localhost 与 127.0.0.1 相同...

那么有谁知道这可能是什么原因?在 Windows Server 上构建 Web 应用程序时,是否需要配置防火墙等额外的东西?

【问题讨论】:

  • 它很可能与 Windows 网络无关。 IIS(和 IIS Express)都可以配置为仅响应某些主机名。在您的情况下,IIS 似乎只会处理对 localhost 的请求。
  • 您可以使用 IIS 作为 Web 服务器,而不是 Visual Studio 附带的 Web 服务器。要猜测您的问题的答案,我建议它可能正在使用主机标头。
  • 听说过 Linux 上的 /etc/hostname 吗?是的,这就是 "计算机名称" ;-)
  • 您将需要真正了解 IIS 的配置方式,:61660 是端口号而不是 IP 地址..
  • @Mark,他自己的偏见使他无法采取最基本的步骤来尝试搜索并找到 Visual Studio / ASP.NET 初学者面临的非常常见问题的解决方案。没有证据表明他试图自己解决这些问题。这和他的其他问题建立了一种巨魔语气。

标签: c# asp.net


【解决方案1】:

我想也许这会对你有所帮助:

如果您使用 IIS 托管您的应用程序,您可以使用本地计算机 IP 地址绑定您的站点,以便在 LAN 连接中工作。

要通过 IIS 添加网站,您可以通过以下链接查看

http://www.iis.net/learn/manage/creating-websites/scenario-build-a-static-website-on-iis

http://blog.pluralsight.com/windows-server-2008-iis7

Binding IIS Express to an IP Address

基本上,您可以手动编辑 applicationhost.config 文件以绑定到 localhost 以外的其他内容。阅读以上链接,但例如见下文:

   <binding protocol="http" bindingInformation="*:8081:localhost" /> 
   <binding protocol="http" bindingInformation="*:8083:192.168.2.102" />

【讨论】:

    猜你喜欢
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2012-12-31
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多