【问题标题】:Cannot attach the file ".mdf" as database "aspnet-"无法将文件“.mdf”附加为数据库“aspnet-”
【发布时间】:2015-11-09 16:16:51
【问题描述】:

我正在使用网络套接字和 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?还有,帮忙?

【问题讨论】:

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


    【解决方案1】:

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

    在您的 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);
    

    【讨论】:

    • 像魅力一样工作。谢谢!
    • @dylanthelion 很高兴听到!我个人不知道这是否是处理这种情况的最有效方法 - 但它确实对我自己有用。
    • 让我进入下一步,这正是我所需要的。 EF 中的复杂模型并不容易,我期待更多的工作。
    • @dylanthelion 同意,我遇到了几个问题!另外,我研究了解决此问题的其他方法,并发现对于某些人来说,只需删除连接字符串的 Initial Catalog=XXX; 部分即可。
    【解决方案2】:

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

    你应该看到这个答案:https://stackoverflow.com/a/20176660/161471

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      相关资源
      最近更新 更多