我有一个多租户网站,必须处理任何传入的请求,并通过URL子域确定适当的路由。
我使用this或类似解决方案设置了子域路由。
但是,我尝试使用子域名和别名网站访问我本地计算机上的网站。我无法通过我指定的子域将我的本地IIS移植到我的网站。
我想在我的本地计算机上专门设置一个虚拟域名,该域名将移植到我在VS(localhost:23456
)上调试的网站。
我已经阅读了相同问题的一些答案(例如this或this),但看起来系统已经使用新的IIS和Visual Studio 2015和ASP.NET进行了更改5 MVC 6(vNext)项目配置。
以下是我根据上述答案尝试的内容:
hosts
文件移植到www.myexample.com
127.0.0.1
,但我得到了一个错误请求"在我的浏览器中导航到www.myexample.com:23456
时出错,无论如何调试器都没有报告请求。<binding protocol="http" bindingInformation=":23456:www.myexample.com" />
,获取IIS以引发错误说&#34;将主机名替换为 localhost 。任何其他bindingInformation
不具体说明localhost
,因为该网站会引发IIS错误。我知道 .vs 文件夹,我确实正在配置绑定。
但是,看起来是导致IIS抛出错误的权限。
运行netsh
命令解决了问题。顺便说一句,因为我只运行自己的机器,所以我不需要打开防火墙。
无论如何我的问题是,是否有办法分别添加通配符而不是每个子域名?由于每个租户都有一个独特的子域,因此添加子域的整个过程本质上都是动态的。我需要在所有3个地方都允许使用星号:
看起来我可以在这些地方添加星号,但它实际上并不起作用。
答案 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