使用VS 2015进行子域的本地调试

时间:2015-08-17 20:46:01

标签: subdomain visual-studio-2015 iis-express asp.net-core asp.net-core-mvc

我有一个多租户网站,必须处理任何传入的请求,并通过URL子域确定适当的路由。

我使用this或类似解决方案设置了子域路由。

但是,我尝试使用子域名和别名网站访问我本地计算机上的网站。我无法通过我指定的子域将我的本地IIS移植到我的网站。
我想在我的本地计算机上专门设置一个虚拟域名,该域名将移植到我在VS(localhost:23456)上调试的网站。

我已经阅读了相同问题的一些答案(例如thisthis),但看起来系统已经使用新的IIS和Visual Studio 2015和ASP.NET进行了更改5 MVC 6(vNext)项目配置。

以下是我根据上述答案尝试的内容:

  • 我尝试将hosts文件移植到www.myexample.com 127.0.0.1,但我得到了一个错误请求"在我的浏览器中导航到www.myexample.com:23456时出错,无论如何调试器都没有报告请求。
  • 我尝试在 applicationhost.config 文件中设置<binding protocol="http" bindingInformation=":23456:www.myexample.com" />,获取IIS以引发错误说&#34;将主机名替换为 localhost 。任何其他bindingInformation不具体说明localhost,因为该网站会引发IIS错误。

更新

opiants answer之后

我知道 .vs 文件夹,我确实正在配置绑定。
但是,看起来是导致IIS抛出错误的权限。 运行netsh命令解决了问题。顺便说一句,因为我只运行自己的机器,所以我不需要打开防火墙。

无论如何我的问题是,是否有办法分别添加通配符而不是每个子域名?由于每个租户都有一个独特的子域,因此添加子域的整个过程本质上都是动态的。我需要在所有3个地方都允许使用星号:

  • 主机文件
  • applicationhost.config文件
  • netsh命令

看起来我可以在这些地方添加星号,但它实际上并不起作用。

1 个答案:

答案 0 :(得分:6)

我猜你在本地使用IIS表达了吗?

如果是这样,在您的解决方案目录中,有一个.vs文件夹。您需要在该文件夹中的\config\applicationhost.config文件中添加绑定。然后确保您已允许IIS express收听该子域。

你可以参考斯科特的article on how to configure IIS Express。具体来看这段&#34; 1。让IIS EXPRESS通过80端口外部服务&#34;

更具体地说,您需要运行以下命令:

netsh http add urlacl url=http://{your-domain}:{custom-port}/ user=everyone

netsh firewall add portopening TCP {custom-port} IISExpressWeb enable ALL