Request.Url 有错误的端口信息
Posted
技术标签:
【中文标题】Request.Url 有错误的端口信息【英文标题】:Request.Url has wrong port information 【发布时间】:2013-02-16 07:18:45 【问题描述】:我的 Web 应用程序使用 Nancy,并托管在 Azure 中的 Asp.Net 中。 在开发中,我使用的是 IIS Express 和 Azure 的 Compute Emulator。
在生产中,主页在http://mydomain/test
打开
在我的机器上调试,主页在http://127.0.0.1:81/test
打开
但是,在我的 NancyModule 中,我得到:
Request.Url == http://127.0.0.1:82/test
为什么是 82?也许这与 IIS Express 在 http://127.255.0.0:82/
上显示其站点有关?
【问题讨论】:
您不应该看到这种行为。您能否提供一个重现它的示例应用程序?谢谢 我已经复制了我的解决方案,并将其精简为一个仅检查 Requst.Url 的 NancyModule。这是剩下的唯一一堂课。没有引导程序,什么都没有,同样的事情也会发生。 Azure 定义包括我的公司私钥,因此我无法共享工作应用程序... 但是如果你在本地运行它可以工作吗?您能否在我们的用户组中提出这个问题(您可以在 nancyfx.org 上找到一个链接)? 【参考方案1】:82 是 IIS 为应用程序提供服务的端口。你想用它做点什么吗?
【讨论】:
我有一些依赖于地址的代码,我不想将代码分开用于开发和生产。 IIS Express 通过我在问题中写的不同地址为应用程序提供服务 - Nancy 给了我唯一的端口,而不是它的 IP... 不确定投票的目的是什么,因为您没有在原始问题中解释这一点。在生产中,您使用的 DNS 映射到带有端口的 IP 地址(即 82)。显然,您的生产服务器使用的端口与您的调试主机不同。您可以更改在 IIS 或 IDE 中使用的端口。但是,您应该真正解析字符串并删除端口,因为您永远无法真正知道您的 IIS 管理员可能分配给您的端口 您所做的只是指出 OP 在他们的问题中提到的一些内容,并提出一个额外的问题以进行澄清。这似乎更适合作为评论。 另外,不要这么快就认为 OP 是反对者——我对这个答案投了第一个反对票。 Jason - 我没有否决您的答案,即使它并没有真正帮助,并且正如@jadarnel27 评论的那样,它并不真正有资格作为答案。进一步澄清:调试时,我在浏览器中看到 URL X。我想要一段代码让我得到 X,而不是 Y。以上是关于Request.Url 有错误的端口信息的主要内容,如果未能解决你的问题,请参考以下文章
记解决一次“HTTP Error 400. The request URL is invalid”的错误
Request.Url.Query 和 Request.QueryString 有啥区别?