我有一个最近迁移到 Azure Web 角色的 C# MVC4 应用程序。我可以在 Azure 平台上很好地发布/运行该站点,但是当我尝试使用 Azure 开发结构在本地运行它时,IIS 和 IIS Express 会抛出一个通用的 403 错误。
正如我在许多帖子中提到的那样,我尝试将以下内容添加到我的 web.config 中,但它没有帮助。无论如何,这个解决方案似乎有点像大锤方法,因为它通过托管管道运行所有请求,但仍然认为我会试一试。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"></modules>
<handlers>
<remove name="UrlRoutingHandler"/>
</handlers>
</system.webServer>
我已经验证我可以访问我的应用程序根目录中的“robots.txt”文件,以便服务器启动并指向正确的位置,但它不会为我的任何 MVC 页面提供服务。
我也尝试了这个 SO answer中的解决方案。那里也没有骰子。
我还尝试将我的 Azure Web 角色切换为在 IIS 而不是 IIS Express 中运行。我在那里得到相同的 403 错误。为了彻底一点,我确实运行了aspnet_regiis -ir,即使在我的机器上本地运行的其他 MVC 应用程序(非 Azure)运行良好。
编辑
所以这很有趣......当我点击 F5(我的 Azure 项目是我的启动项目)时,Azure Compute/Storage 模拟器启动,然后我的浏览器打开到http://127.0.0.1:81/
. 这是我收到 403 错误的 URL。
但是,如果我使用的是 IIS(不是 Express)并且我访问 Azure 在部署期间创建的 IIS 中的网站,请右键单击“管理网站”,然后选择“浏览”,它会在http://localhost:82/
. 注意“localhost”而不是 127.0.0.1 和端口 82 而不是 81,它可以工作!我可以毫无问题地浏览我的网站,点击断点等。现在,如果我尝试http://127.0.0.1:82
(使用 IP,但使用端口 82),我仍然会得到 403。
有任何想法吗?