Azure令我头疼。
我从一个教程开始。发布了一个新的MVC 3项目。花了大约9分钟然后它在我的生产VM上工作正常。
然后我尝试发布我一直在研究的项目(MVC 3)。它具有以下依赖性:
Service.dll
Domain.dll
Autofac.dll
使用模拟器调试时工作正常 当我解压缩包并将其部署到另一台服务器时,它工作正常。
但是当我发布到Azure Production时,我得到以下内容:
1:42:31 PM - 为具有订阅ID的网站准备部署:...
1:42:31 PM - 连接...
1:42:35 PM - 验证存储帐户'...'...
1:42:38 PM - 上传包...
下午1:44:46 - 创造...
1:45:56 PM - 创建部署ID:....
下午1:45:56 - 开始...
1:46:34 PM - 初始化...
1:46:34 PM - 角色的实例0网站处于未知状态
1:46:34 PM - 角色的实例1网站处于未知状态
1:47:06 PM - 角色的实例0网站正在创建虚拟机
1:47:06 PM - 角色的实例1网站正在创建虚拟机
1:47:37 PM - 角色的实例0网站正在启动虚拟机
1:47:37 PM - 角色的实例1网站正在启动虚拟机
1:50:13 PM - 角色的实例0网站处于未知状态
1:50:13 PM - 角色的实例1网站处于未知状态
1:50:44 PM - 角色的实例0网站正忙着
1:50:44 PM - 角色的实例1网站正忙着
1:54:31 PM - 角色的实例1网站正在重新启动
1:55:02 PM - 角色的实例1网站忙碌
1:56:40 PM - 角色的实例1网站正在骑自行车
1:57:43 PM - 角色网站的实例0正在循环
我已经尝试了很多次。没有成功。
我忘了提到我有facebook C#sdk DLL
我使用了反复试验来发现Facebook.Web.Mvc dll导致了我的问题。 它已包含在bin文件夹中但仍然没有用。
答案 0 :(得分:10)
Azure环境没有所有MVC 3程序集。您需要确保在项目中引用它们并设置CopyLocal = true,以便程序集包含在Azure包中。如果Azure找不到项目的所有依赖项,它将经历这个无限循环。
您需要参考的程序集是:
One blog我看到还提到需要WebMatrix.Data
,但我发现在我的项目中我不需要这个。
如果您引用的任何其他程序集不是.NET Framework的一部分,那么您还需要在这些程序集上设置CopyLocal = true。
此外,确保在部署到Azure时Azure存储设置未设置为“使用开发存储” - 这将导致同样的问题。
如果上述方法无法解决问题,请查看this site以了解其他可能的原因。
答案 1 :(得分:3)
正如Brian Rogers所说,对asp.net MVC程序集的要求,并指出一个好的资源,因为角色正在循环。另外一件事可以帮助MVC。您可以右键单击Web Application Proejct并选择“Add Deployable Dependcies”,然后选择ASP.NET MVC3。这将确保在部署时所有MVC3所需的程序集都与您的项目一致。
答案 2 :(得分:1)
为项目中使用的每个引用设置引用属性“copy local”为“true”。这对我有用。
答案 3 :(得分:1)
在更新我的项目以使用Azure .NET SDK 2.0版后,我遇到了类似的问题。
更新过程更改了配置文件,但未更新项目引用的版本。我通过手动删除对旧的1.8。*版本的DLL的引用,然后添加对2.0的引用来解决这个问题。版本
答案 4 :(得分:0)
请验证在您的解决方案中仅为32位或64位构建的任何第三方dll ..这些dll导致角色循环和繁忙..