【发布时间】:2014-12-31 08:14:53
【问题描述】:
我在部署 azure 云服务时遇到了一个非常奇怪的问题。我有 1 个具有 5 个实例的 Web 角色和 1 个具有 2 个实例的缓存角色。
当我从 Azure 门户部署我的 MVC 5 WebRole 时,部署在第一个 Web 实例上开始,然后它告诉我“无法启动角色”由于错误并停止处理其他实例。我对失败的实例做了一个 RDP 并且真正的 MVC 应用程序抛出一个错误,它找不到某个视图文件“在以下路径中找不到布局页面“...”,即使视图在指定的路径确实存在。所以我做了一个 iisreset 并且应用程序工作了。在我手动修复问题后,部署继续到下一个实例,失败的实例变为“就绪”。
任何人都知道为什么事情不再顺利部署或为什么需要 iisreset?
这是相对较新的,大约一个月。
我的环境是:
- .NET Framework 4.5.1
- MVC 5
- 适用于 VS 2013 的 Azure SDK 2.4
感谢您的帮助。
【问题讨论】:
-
你的应用在模拟器本地成功运行了吗?您是否尝试过 express 和 full 模拟器?对于您的场景,您应该使用完整的模拟器,但我会先从 express 开始,因为它会加载得更快。
-
是的,它在两个模拟器上都能完美运行
-
您如何部署您的应用程序?运行工作进程的帐户是否可能存在权限问题?
-
其实很简单,我使用默认的 IIS AppPool 设置和身份。我将一个包上传到 Blob 存储,并使用 Web 门户从这个包更新服务。
-
这很奇怪。我假设您的目标是 OS Family 4。如果不是,请这样做。作为最后的手段,尝试在提升模式下运行 Web 角色:msdn.microsoft.com/en-us/library/azure/gg557553.aspx - 运行时元素,executionContext 属性。在提升中运行应该解决任何权限。但我更想知道您是否有竞争条件 - Web 角色实例试图在缓存完全准备好之前访问它。
标签: asp.net-mvc azure