无法将文件“.mdf”附加为数据库“aspnet-”

时间:2015-11-09 16:16:52

标签: sql-server asp.net-mvc-4

我正在使用Web套接字和SqlDependency来构建游戏服务器。 SqlDataReader的错误表明我应该调用SqlDependency.Start。我在Global.Asax中包含以下内容:

SqlDependency.Start(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);

此行始终以SqlException结尾,并带有消息:

Cannot attach the file 'C:...aspnet-ProjectName-11111111111.mdf' as database 'aspen-ProjectName-11111111111'.

我一直试图解决这个问题两天。我已经开始了一个新的MVC 4 WebAPI应用程序,它具有基本模型,上下文和种子,并且无法解决此错误。我已经尝试了以下各种解决方案:

https://social.msdn.microsoft.com/Forums/en-US/ae041d05-71ef-4ffb-9420-45cbe5c07fc5/ef5-cannot-attach-the-file-0-as-database-1?forum=adodotnetentityframework

ASP.NET MVC4 Code First - 'Cannot attach the file as database' exception

EF5: Cannot attach the file ‘{0}' as database '{1}'

没有变化。我在Visual Studio 2012中运行MVC4 API,SQL Server是2014年。

这是数据库连接问题,对吗?我的AppData文件夹中的.mdf文件(它和两个项目中都有日志文件)都无法连接到SQL Server?还有,帮忙?

2 个答案:

答案 0 :(得分:2)

我遇到了和你一样的问题。

在您的Web.config文件中,找到连接字符串,复制并粘贴它,然后删除'MultipleActiveResultSets'之后的所有内容 - 除了providerName。

所以在我看来,它改变了:

<add name="ApplicationName" connectionString="Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=ApplicationNameContext-20151023111236; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|ApplicationNameContext-20151023111236.mdf" providerName="System.Data.SqlClient" />

成为这个:

<add name="NotificationConnection" connectionString="Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=ApplicationNameContext-20151023111236; Integrated Security=True;" providerName="System.Data.SqlClient" />

正如您将注意到连接具有不同的名称。 连接仍将查询同一数据库。

现在将Dependency.Start参数中的连接字符串名称修改为您刚刚创建的连接字符串的名称:

SqlDependency.Start(ConfigurationManager.ConnectionStrings["NEW_CONNECTION_NAME"].ConnectionString);

答案 1 :(得分:0)

删除连接字符串中的Initial Catalog属性。

您应该看到以下答案:https://stackoverflow.com/a/20176660/161471