0

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

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

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

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

我尝试在 system32/drivers/etc 中编辑我的主机文件,例如

127.0.0.1  localhost site1.localhost site2.localhost

但是如果我在我的代码中点击 site1.localhost , request.Url 总是 localhost

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

4

3 回答 3

1

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

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

     string fullPath = host + pathAndQuery;
于 2012-05-22T02:49:25.463 回答
0

基于 mfras3r 评论。我可以让它通过

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

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

于 2012-05-22T02:38:34.893 回答
0

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

于 2012-05-22T02:52:42.493 回答