1

昨天,我可以完美地将我的服务部署到 Windows Azure 上的托管服务实例。今天,我总是遇到类似的错误

6:09:56 PM - Preparing...
6:09:56 PM - Connecting...
6:09:59 PM - Uploading...
6:11:15 PM - Creating...
6:12:28 PM - Starting...
6:13:20 PM - Initializing...
6:13:21 PM - Instance 0 of role TestWebRole is initializing
6:18:39 PM - Instance 0 of role TestWebRole is busy
6:21:51 PM - Instance 0 of role TestWebRole is stopped
6:21:51 PM - Warning: All role instances have stopped
6:22:23 PM - Instance 0 of role TestWebRole is busy
6:23:26 PM - Instance 0 of role TestWebRole is stopped
6:23:26 PM - Warning: All role instances have stopped

这些错误通常是由于云服务器上不存在的依赖关系而发生的(如果您搜索上面的警告,这就是您在 SO 和 Google 上找到的内容)。但是我检查了每一个依赖项,它们与Copy Local=True.

为了进一步隔离问题,我首先使用新的 MVC 3 Web 角色创建了一个新的 Azure 项目,然后使用标准的 ASP.NET Web 角色创建了一个新的 Azure 项目,但仍然没有运气。我试图停用诊断,重新激活它。在 Azure 模拟器上,项目运行良好。

即使是标准的 Visual Studio 也无法部署到 Azure,我总是得到Warning: All role instances have stopped.

有点令人沮丧。我正在使用带有 Azure 工具 1.3 的最新 Azure SDK 1.7。

谢谢你的任何提示。

4

2 回答 2

2

如果项目在模拟器中运行良好,大多数情况下这是因为您在计算机上安装了所有必需的依赖项,但在 Windows Azure 中没有。

我建议您查看 David 答案中的博文,除了解释如何禁用会话状态之外,它还解释了必须将哪些程序集设置为 Copy Local 才能使 MVC3 正常工作。或者,您可以尝试史蒂夫在他的博文中描述的一种技术:http: //blog.smarx.com/posts/asp-net-mvc-in-windows-azure

它可以真正帮助您激活远程桌面来解决这个问题。如果您注意到您的实例正在循环,我建议您通过 RDP 连接并查看事件查看器(您可能需要尝试几次才能连接)。请留意应用程序日志中的 ASP.NET 警告,大多数情况下,这些警告会为您提供有关缺少哪些程序集的更多信息。

于 2012-06-25T05:54:04.087 回答
1

令人惊讶的是,昨天它起作用了,而今天却不起作用。也就是说:当创建一个全新的 asp.net 项目时,默认会话状态提供程序被映射到本地 SQL 数据库,这在 Windows Azure 中不存在。您需要编辑 web.config 以将其指向 Windows Azure SQL 数据库或缓存(共享缓存服务或 SDK 1.7 中可用的新角色内缓存)。

Nate Totten 在去年的这篇博文中讨论了会话问题。

于 2012-06-24T22:40:50.750 回答