5

我在使用 Azure 时遇到了一个奇怪的问题!

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

在本地一切正常,但在部署到 Azure 后,我发现该角色卡在“忙碌”状态,但网站可以正常工作!它还自发地回收实例(我猜测是因为它的忙碌状态)。

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

由于以下异常,无法加载角色入口点:

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

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

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

谢谢!

4

3 回答 3

5

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

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

  <dependentAssembly>
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
   </dependentAssembly>
于 2012-06-11T05:22:12.897 回答
0

我假设您已将 System.Web.Mvc 引用的复制本地设置为 true,因此它被复制到您的部署包中?

于 2012-06-08T12:03:30.453 回答
0

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

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

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

于 2013-01-15T08:38:48.113 回答