我有一个在 Windows Azure 上运行的 LoB Silverlight 5 应用程序。我使用 EF4 和 RIA 服务开发了该应用程序。我决定将模型更新为 EF5,并使用最新的 RIA 服务将其保留在 .NET 4 上。
简短的故事:
在我更新到 EF5 和 RIA 服务 4.2 后,该应用程序在模拟器中本地运行,但在 Azure 上崩溃。
长话短说:
应用程序分为 4 个项目:客户端、服务器(包含DbContext
)、模型(包含edmx
文件)、助手。
当我决定更新时,我从模型项目开始:删除旧引用,删除edmx
,添加新引用(nuget),生成新的edmx
. 它构建正确。
然后是服务器项目:删除旧引用,添加新引用(nuget),更改域服务文件DbContext
并进行编辑,使其适用于 EF5。它构建并且应用程序在本地工作(没有天蓝色模拟器)。
当我在 Azure 模拟器上测试时,响应是 501。我在某处找到(我会在再次找到它时发布链接)解决方案是在引用实体框架的app.config
文件中添加一个包含相同runtime/assemblyBinding/dependentAssembly/assemblyIdentity
部分的文件。web.config
然后我在 Azure 上的暂存环境上上传,WaBootstrapper 的过程不断循环尝试安装服务器代码,而 WaIISHost 不断崩溃。
我尝试过的事情:
- 将名称更改为 app.config 到服务器程序集 dll,例如:
AppName.Web.dll.config
- 删除
System.Data.Entity
(根本不构建..需要那个dll); - 迁移到 .NET 4.5 以摆脱
System.Data.Entity
; - 检查每个项目中的所有引用和“复制本地”选项;
- 迁移到 Entity Framework 6 (RC1).. 只是尝试.. 我不能为此受到责备;
- (其他我不记得的东西)。
上面的列表都没有改变结果。我花了一周多的时间在这上面,现在我想我失去了注意力……所以我在寻求你的帮助。伙计们,你们救了我不止一次。我什至无法记住互联网和 StackOverflow 之前的情况。
谢谢..欢迎任何帮助!
PS 由作者编辑,我忘了提及我还将 Windows Azure SDK 从 1.7 更新到 2.1。