Azure Web应用程序无法找到程序集'实体框架'

本文关键字:实体 框架 程序集 应用程序 Web Azure | 更新日期: 2023-09-27 18:08:28

我试图通过Visual Studio 2015发布一个项目到Azure Web应用程序。这是一个针对框架4.6.2的MVC 4。在VS2015中,发布过程声称已经成功完成,然而,当浏览器启动以显示发布的站点时,它在favicon.ico文件上出现502错误(坏网关/代理)。显然,事实并非如此。

我从Web应用程序下载了我的eventlog.xml文件,并查看正在报告的错误,它声称无法找到汇编"EntityFramework, Version=6.0.0.0…"。但是,我看到了项目bin文件夹中包含的EntityFramework.dll。但是,只是为了看看它是否有任何不同,我尝试使用Kudu从NuGet安装EntityFramework,以及使用成功推送到Azure的packages.config文件进行NuGet恢复。我所做的只是在我不需要的地方恢复了大量的文件,但同样的错误仍然存在。

有没有其他人看到这个问题,并有什么建议如何解决它?我不确定我还能发表什么来更清楚地了解将要发生的事情……它不像有任何代码或源代码,eventlog.xml文件显示的只是缺少程序集的YSOD错误消息。

请,任何帮助将不胜感激!

Azure Web应用程序无法找到程序集'实体框架'

我在过去遇到过这种情况-如果你仔细阅读错误消息,它会说它无法加载该程序集或它的一些依赖项 -所以它很可能是应用程序中缺少的另一个dll。

门户中使用控制台刀片(或单独的捻角羚站点和控制台如果你喜欢)比较本文件夹的内容,在您的开发/测试环境,看看少了什么,如果你坚持使用nuget包,那么你不应该能够远远错了,但我想我仍然与EF问题前一段时间,当我没有EF库直接从web应用程序的引用,但只有从一个库组装从web应用程序引用。

如果你不使用Nuget并直接引用依赖项,请确保引用的dll的"copy to output"属性在VS中被正确设置,这样dll最终会被复制到项目的bin文件夹中,并包含在部署到Azure的包中。

好吧,事实证明这是一个"这不是真正的问题"的错误消息之一。多亏了罗素和卡雷尔。你的输入让我验证了一些东西,并确保我正确地引用了所有的东西。

这是我发现的…我们的DEV SQL虚拟机在周末关闭以节省资源(也就是$$$)。在通过FTP发送了本地bin目录中的所有文件后,我浏览了该站点并收到了相同的错误。然而,在下载日志时,我发现无法使用Named Pipes访问db服务器。哎呀……其中一个连接字符串(在存储库项目中)没有设置为FQDN,因此它没有使用TCP/IP进行连接。

我修复了这个问题,发布了网站,将转到 sql服务器上,现在该网站正按预期工作。

这个故事的寓意是,确保你所有的连接字符串设置正确。