我对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的任何引用,并且该项目的引用看起来很好。
请帮忙!我可以采取额外的调试步骤吗?
谢谢!
答案 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,它是用意大利语写的,但您可以将其翻译成英语。