14

我正在尝试将具有 1 个 Web 角色的云服务部署到 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.

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

4

8 回答 8

3

请参阅https://docs.microsoft.com/en-us/archive/blogs/kwill/windows-azure-paas-compute-diagnostics-data。这将遍历所有可用的诊断数据以及如何解决最常见的问题。

于 2013-10-29T21:48:17.580 回答
2

我们也有这个烦人的问题,在我们的例子中:

  1. 我们使用本地存储,但它没有在服务定义(或 Worker Role 的属性)中定义
  2. 我们的工人角色项目引用了一个引用数据层项目的服务项目。但是,工作者角色项目没有对数据层项目的引用。一旦我们在工作角色项目中添加了对数据层项目的引用,它就会成功部署。

如果您首先在本地计算机上运行项目,则可以很容易地注意到问题 #1 。将抛出异常。

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

于 2015-08-17T15:41:07.850 回答
1

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

尝试将项目中所有引用的 CopyLocal 设置为“true”,然后重新部署。

于 2014-10-27T12:59:32.913 回答
0

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

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

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

于 2014-07-30T09:33:49.677 回答
0

我将远程桌面连接到云实例并查看 Windows 事件日志中是否存在异常,或者在启用 IntelliTrace 的情况下重新部署。如果选择后者,可以从 Visual Studio 下载 IntelliTrace 日志并调试

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

于 2013-10-30T16:42:06.907 回答
0

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

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

log4net.Config.XmlConfigurator.Configure();

我将 AdoNetAdapter 用于 log4net 并连接到 Azure SQL DB 进行日志记录,因此我检查了防火墙规则。

于 2016-10-28T14:02:36.483 回答
0

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

于 2017-03-24T15:36:20.217 回答
-1

随着适用于 Visual Studio 2012 和 2013 的 Windows Azure SDK 版本 2.2 的发布,现在您可以在 Visual Studio 中远程调试云资源

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

于 2013-10-30T09:36:27.477 回答