Azure上的MVC4部署问题

时间:2012-06-08 11:40:23

标签: asp.net-mvc asp.net-mvc-3 azure asp.net-mvc-4

我对Azure有一个奇怪的问题!

我刚刚将我的azure部署站点从 MVC3升级到MVC4 。我是通过创建一个仅使用Nuget包的全新MVC4项目来做到这一点的,所以应该“可以部署”吗?我只复制了根目录和Views文件夹中的Web.config中的基本部分。

一切都在本地工作正常,但在部署到Azure后,我发现该角色卡在“忙”但网站有效!它也会自发地回收实例(由于其忙碌状态而猜测)。

我在部署中添加了Intellitrace,它抱怨此引用不存在:

由于以下例外情况,无法加载角色入口点:

- System.IO.FileLoadException:无法加载文件或程序集'System.Web.Mvc,Version = 3.0.0.0'

我不知道它为什么要在4个项目中加载MVC Version 3引用。我在Web.configs中搜索了对3.0.0.0的任何引用,并且该项目的引用看起来很好。

请帮忙!我可以采取额外的调试步骤吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

这似乎与http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/9c2f6b62-185d-4a38-8bb5-eda1917604d9的问题相同。正如另一个帖子所指出的那样:

您是否配置了程序集重定向?如果您创建具有MVC 4 Web角色的新Windows Azure项目(现在在SDK 1.7中受支持),您将看到以下重定向:

  <dependentAssembly>
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
   </dependentAssembly>

答案 1 :(得分:0)

我假设您将System.Web.Mvc引用的copy local设置为true,以便将其复制到部署包中?

答案 2 :(得分:0)

我有同样的问题将我的项目上传到Azure, 另外我分别做了你的推荐,

所以有必要创建一个启动任务我的项目,然后我为这个启动任务生成脚本。检查您的托管服务和 我托管服务是Windows Server R2所以我更改了我的ServiceConfiguration.Cloud.cscfg文件。 OsFamily 属性被更改为“ 1 ”更改为“ 2

您可以在此链接中找到更多信息:Windows Azure Startup Tasks,它是用意大利语写的,但您可以将其翻译成英语。