在更新或升级操作期间,您的角色实例已多次循环使用

时间:2013-10-29 20:30:05

标签: azure azure-web-roles

我正在尝试将具有1个Web角色的Cloud Service部署到Azure。

当我这样做时,我收到了这条消息:

Your role instances have recycled a number of times during an update or upgrade operation. This indicates that the new version of your service or the configuration settings you provided when configuring the service prevent the role instances from running. Verify your code does not throw unhandled exceptions and that your configuration settings are correct and then start another update or upgrade operation.

该项目在本地运行得很好,我很难搞清楚如何开始调试此问题。是否有任何常见问题导致此消息或步骤找出导致它的原因?

8 个答案:

答案 0 :(得分:3)

http://blogs.msdn.com/b/kwill/archive/2013/08/09/windows-azure-paas-compute-diagnostics-data.aspx。这将介绍所有可用的诊断数据以及如何解决最常见的问题。

答案 1 :(得分:2)

我们也有这个恼人的问题,在我们的案例中:

  1. 我们使用本地存储,但未在服务定义(或工作者角色的属性)中定义
  2. 我们的工作者角色项目引用了一个引用数据层项目的服务项目。但是,工作者角色项目没有引用数据层项目。一旦我们在worker角色项目中添加了对数据层项目的引用,它就会成功部署。
  3. 如果您首先在本地计算机上运行项目,则可以轻松注意到问题#1。将抛出异常。

    然而,问题#2更难,主要是因为它在本地机器上运行得很好。经过5天的故障排除后,我们终于找到了问题所在。因此,检查所有引用并尝试添加子引用项目,即其他引用引用的项目。

答案 2 :(得分:1)

我们遇到了类似的问题,这是由于某些DDL无法加载。 (由于一个MS已经部署到VM的版本不同)

尝试将CopyLocal设置为" true"对于项目中的所有参考,并重新部署。

答案 3 :(得分:0)

我要么远程桌面到云实例,要检查Windows事件日志中的异常,或者使用IntelliTrace Enabled重新部署。如果选择更晚的版本,则可以从Visual Studio下载IntelliTrace日志并进行调试

http://msdn.microsoft.com/en-us/library/windowsazure/ff683671.aspx

答案 4 :(得分:0)

找出实际错误的一种方法是点击" 1个实例"尝试部署Web角色后,在仪表板顶部。它会告诉您角色实例的状态。状态应包括有关阻止部署的错误类型的更多信息。

这取决于你的情况。对我来说,状态声称我有一个未处理的安全例外。经过一番调查后发现,在我的角色OnStart()下,我试图创建一个事件源。但是,Azure服务没有创建事件源的权限。

如有更多可能的问题,请查看http://blogs.msdn.com/b/kwill/archive/2013/09/06/troubleshooting-scenario-3-role-stuck-in-busy.aspx

答案 5 :(得分:0)

对我来说,问题在于我的SQL Azure数据库防火墙规则。我的Azure SQL数据库服务器未设置为“允许访问Azure服务”,因此我必须明确列出允许的IP。

在将我的代码包装在try / catch中之后我发现了这一点,它吞噬了所有异常,重构了我的OnStart()和RunAsync()方法,并将我的所有引用设置为Copy Local = True。这些都没有用,然后我看到我在RunAsync()方法中有这一行:

log4net.Config.XmlConfigurator.Configure();

我正在使用AdoNetAdapter for log4net并连接到Azure SQL DB进行日志记录,这样我就可以检查防火墙规则。

答案 6 :(得分:0)

对我来说,我在各种项目中都有一些不同版本的nuget包。一旦我将所有内容整合到相同的版本,它就可以正常工作。

答案 7 :(得分:-1)

随着Visual Studio 2012和2013的Windows Azure SDK 2.2版的发布,现在您可以Remote Debug Cloud Resources within Visual Studio

一旦您的云服务发布并在云中实时运行,您只需在本地源代码中设置断点即可。这可以帮助您挖掘出错的地方!