我有一个基于 Azure 的多站点 Web 应用程序。一个站点包含网页(具有通过 jQuery、Raphaël 和 HTML 驱动的视图功能)和瘦 WCF 服务。第二个站点包含一个功能更强大的 WCF 服务,它依次调用调用数据库的数据对象。几年前我们停止了该网站的开发,但它仍然为少数仍然喜欢使用它的人提供服务。
昨天我不得不修复有人在网站上报告的跨站点脚本漏洞。
我惊恐地发现,在将它们部署到 Azure 之前,我无法再在我的本地计算机上在 Visual Studio 下运行这些站点来测试和调试任何更改。
由于两个 WCF 站点之间的交互,我将本地调试设置如下:
在 Internet 信息服务管理器工具 (InetMgr) 中,我添加了其他网站,它们的物理路径设置为我机器上 TFS 本地路径中源代码的位置。
我在站点绑定中编辑主机名以模仿 Azure 位置,即主站点是 Azure 上的 projname.cloudapp.net:80 和我本地 IIS 中的 projnamelocal.cloudapp.net:80,数据 WCF 站点是 projname-wcf Azure 上的 .cloudapp.net:8080 和我本地 IIS 上的 projname-wcflocal.cloudapp.net:8080 。(注意主站点也有 HTTPS 绑定。)
我编辑
C:\Windows\System32\drivers\etc\hosts
以包含这些行127.0.0.1 projnamelocal.cloudapp.net
127.0.0.1 projname-wcflocal.cloudapp.net
在 Visual Studio 中,我编辑主站点项目的 Web 属性,以便它使用本地 IIS 和项目 URL http://projname.cloudapp.net/并且我有一个开关(在代码中说明是否调用本地 WCF或现场 Azure 之一。
过去,当项目处于积极开发阶段时,这种设置对于本地测试和调试工作得很好。昨天它失败了,一台机器http://projnamelocal.cloudapp.net/在另一台机器上给出了 503 错误 404。(注意,我可以从命令行 ping 每个 URL,以便主机重定向正常工作。)Visual Studio 抱怨它是“无法在 Web 服务器上开始调试”并且它“无法启动 ASP.NET 调试”。
我已经尝试了所有的建议和一些:
- 无需调试即可运行
- 以管理员身份运行 Visual Studio(我已经)
- 重新注册 ASP
- 更改应用程序池
- 授予每个人对代码目录的完全权限
- 以我自己的域帐户运行,该帐户是本地计算机上的管理员
- 将 IE 更改为不自动检测代理
- 将站点添加到 IE 的受信任站点列表中
- 关闭 IE 的保护模式
- 重新启动 Visual Studio
- 重新启动电脑
- 再次重启电脑
我应该如何设置这种在 Visual Studio 下的 IIS 中运行、测试和调试本地站点的方式?