ASP.NET MVC实体框架应用程序使用错误的SQL连接字符串

时间:2016-06-02 11:37:14

标签: asp.net entity-framework asp.net-mvc-5 connection-string webdeploy

我有一个ASP.NET MVC5 Web应用程序,最初使用VS2013创建,并使用Entity Framework 6 Code First和数据迁移。它已经运行良好(在生产中)已有近一年的时间,并且已经使用Web Deploy从Visual Studio重新部署了多次。

今天,我在VS2015中打开了解决方案,并将一个已知的代码库工作版本重新部署到生产中,没有任何问题。但是,在部署之后,生产网站遇到了this article中描述的问题,我通过应用作者推荐的修复解决了这个问题。

应用这些修补程序后,我现在遇到了一个新问题:一个异常,表明应用程序正在尝试使用错误的连接字符串访问数据库:

  

由于无法检索用户的本地应用程序数据路径而无法生成SQL Server的用户实例。请确保用户在计算机上具有本地用户配置文件。连接将被关闭。

在异常页面的详细信息中,阐明了问题的原因:

  

连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。

我很困惑,因为应用程序有一个专用的SQL Server实例,可以使用常规连接字符串进行访问。我已经检查了Web Deploy生成的Web.config,它似乎完好无损。它包含一个正确引用生产SQL Server实例的命名连接字符串,并且代码(未更改)使用指定的连接字符串正确实例化Entity Framework ApplicationContext。

有没有人知道为什么这个应用程序现在希望创建自己的SQL Server实例或我可以做些什么来调试这个问题?

非常感谢你的建议,

1 个答案:

答案 0 :(得分:0)

在进行网络部署之前,您可以尝试一些事项:

  • 检查包含连接字符串声明(web.config)的项目是否已设置为'启动项目'。
  • 在发布模式下重建解决方案。
  • 在“发布网络”向导的“设置”中,展开“文件发布选项”,然后选中“删除目的地中的其他文件”。和'从App_Data文件夹'
  • 中排除文件