【问题标题】:Weird Behavior Deploying Azure Cloud Service部署 Azure 云服务的奇怪行为
【发布时间】:2014-12-31 08:14:53
【问题描述】:

我在部署 azure 云服务时遇到了一个非常奇怪的问题。我有 1 个具有 5 个实例的 Web 角色和 1 个具有 2 个实例的缓存角色。

当我从 Azure 门户部署我的 MVC 5 WebRole 时,部署在第一个 Web 实例上开始,然后它告诉我“无法启动角色”由于错误并停止处理其他实例。我对失败的实例做了一个 RDP 并且真正的 MVC 应用程序抛出一个错误,它找不到某个视图文件“在以下路径中找不到布局页面“...”,即使视图在指定的路径确实存在。所以我做了一个 iisreset 并且应用程序工作了。在我手动修复问题后,部署继续到下一个实例,失败的实例变为“就绪”。

任何人都知道为什么事情不再顺利部署或为什么需要 iisreset?

这是相对较新的,大约一个月。

我的环境是:

  1. .NET Framework 4.5.1
  2. MVC 5
  3. 适用于 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


【解决方案1】:

终于!!我发现了问题并修复了它。

我有一个本地存储资源来存储某些组件的临时文件和本地文件缓存,并配置为在角色重新启动时重置。其中一个组件(用于 azure 的 Lucene.NET)将文件锁定在该本地存储中,导致部署问题需要重置 IIS 以释放锁定。

我将组件配置为在 Windows 临时存储而不是本地资源上缓存文件,然后事情就解决了。

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 2017-06-24
    • 2012-09-05
    • 2018-08-29
    • 2016-05-21
    • 2019-06-03
    • 1970-01-01
    • 2013-08-19
    相关资源
    最近更新 更多