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

dyl*_*ion 3 sql-server asp.net-mvc-4

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

SqlDependency.Start(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)

这一行总是以 SqlException 结束,并带有消息:

Cannot attach the file 'C:...aspnet-ProjectName-11111111111.mdf' as database 'aspen-ProjectName-11111111111'.
Run Code Online (Sandbox Code Playgroud)

这两天我一直在努力解决这个问题。我已经启动了一个新的 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 - “无法将文件附加为数据库”异常

EF5:无法附加文件“{0}”作为数据库“{1}”

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

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

Mal*_*arp 5

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

在您的 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" />
Run Code Online (Sandbox Code Playgroud)

变成了这样:

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

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

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

SqlDependency.Start(ConfigurationManager.ConnectionStrings["NEW_CONNECTION_NAME"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)