c# asp.net mvc HttpRequest.URL

本文关键字:HttpRequest URL mvc net asp | 更新日期: 2023-09-27 18:34:57

我有一个 ASP.net 的Web应用程序,它根据登录的URL具有不同的功能和数据。

在已部署的环境中一切正常,因为我可以在 IIS 中绑定多个主机,然后 Web 应用程序可以询问请求。用于确定要使用的代码和数据的 URL。

例如,http://foo.bar.com 将运行与 http://test.bar.com 不同的代码

在我的开发计算机上调试VS2010时出现问题。我可以在配置中对默认站点 url 进行硬编码,但需要同时运行多个站点 URL。例如,site1.localhost, site2.localhost, site3.localhost ....

我尝试在system32/驱动程序/等中编辑我的主机文件例如

127.0.0.1  localhost site1.localhost site2.localhost

但是如果我在我的代码中点击 site1.localhost,请求。网址始终是本地主机

无论如何,我可以解决这个问题吗?

c# asp.net mvc HttpRequest.URL

如果您在 system32/drivers/etc/hosts 中映射了主机名,请尝试此代码。这应该返回正确的路径

     string host = Request.Headers["Host"];
     string pathAndQuery = Request.Url.PathAndQuery;
     string fullPath = host + pathAndQuery;

基于 mfras3r 注释。 我可以通过以下方式让它工作

在 IIS 中设置网站时,将该网站指向我的 MVC 应用程序的目录。将所有 URL 的绑定添加到 IIS 中的网站。将 url 添加为/etc/hosts 中指向本地主机的条目。

生成应用程序。(不要运行它,因为它会因 IIS 而搞砸(调试 ->附加到 IIS 进程。

我认为vs2010中的调试服务器不是功能齐全的IIS。它不支持多个站点。因此,在您的情况下,最好使用"附加"或远程调试。这取决于是否可以在开发计算机上安装 IIS。