多宿主IIS服务器下Visual Studio通过Web Deploy部署多站点的问题
解决多宿主IIS站点Web Deploy发布URL重复问题
核心原理
Web Deploy的WMSVC服务虽共用8172端口,但可通过站点名称或SNI主机头识别目标部署站点,无需修改端口。
方案1:发布时指定目标站点名称
保持发布URL不变,在Visual Studio发布配置中明确指定第二个站点的名称即可:
- 打开发布配置界面的连接选项卡
- 发布URL仍填
https://{你的服务器域名/公网IP}:8172/msdeploy.axd - 在站点/应用程序输入框中,填写第二个站点的完整名称(如
Site2或自定义站点名) - 点击验证连接,确认可正常指向目标站点
方案2:利用SNI主机头路由
因第二个站点已配置通配符SSL证书,可通过SNI主机头实现精准路由:
- 在IIS管理器中,确保第二个站点的HTTPS绑定已启用SNI,并绑定对应主机头(如
site2.yourdomain.com) - 将Visual Studio的发布URL改为
https://site2.yourdomain.com:8172/msdeploy.axd - 测试连接,WMSVC会通过SNI识别主机头,自动路由到第二个站点
方案3:手动生成站点专属发布配置文件
若前两种方法不生效,可直接为第二个站点生成专属发布配置:
- 在服务器IIS管理器中选中第二个站点,右键选择部署 -> 生成Web Deploy发布包
- 将生成包内的
PublishSettings文件导入Visual Studio - 导入后会自动配置对应站点的标识,无需手动修改URL
关键注意事项
- 确保服务器Web Deploy服务(WMSVC)处于运行状态,且防火墙允许8172端口入站连接
- 通配符SSL证书需正确绑定到两个站点的HTTPS绑定,且SNI配置无误
- 发布用户需拥有第二个站点的IIS管理器权限或网站部署权限
内容的提问来源于stack exchange,提问作者GCDevOps
相关产品推荐
相关产品推荐

