gpt4 book ai didi

sql-server - ConnectionString 上的底层提供程序失败(|DataDirectory| 和 LocalDB)

转载 作者:行者123 更新时间:2023-12-04 05:12:43 24 4
gpt4 key购买 nike

我得到了异常(exception)

The underlying provider failed on ConnectionString.



有内部异常(exception)

Invalid value for key 'attachdbfilename'



在 Windows 7 家庭高级虚拟机上,因为我正在尝试部署和调试我的应用程序。

但是,在我的开发机器上,应用程序刚刚启动就没有问题。

连接字符串是:
<add name="AssetsLocalDBEntities" connectionString="metadata=res://*/AssetsLocalDB.csdl|res://*/AssetsLocalDB.ssdl|res://*/AssetsLocalDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(localdb)\v11.0;attachdbfilename=|DataDirectory|\AssetDatabase.mdf;initial catalog=AssetDBSource;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Steve Wellens 在本主题中提到连接字符串包含垃圾:
The underlying provider failed on ConnectionString

然而,正如 Maxim Gueivandov 所回答的那样,这应该是有效的连接字符串,因为它是由 EntityFramework 的 edmx 设计器直接生成的。
至少,我相信它是有效的,因为它确实适用于开发机器。

同样在另一个主题( Entity Framework - The underlying provider failed on ConnectionString )中,接受的答案是删除“并将它们替换为\”,因为字符串是 c# 代码中的文字,但我仍然在 xml 中有我的连接字符串,所以“不能简单地被替换。
连接字符串

虚拟机上安装的 .NET 版本是 4.0.30319,MsSQL Server Express LocalDB 是 11.0.2318.0,所以我相信它们都是最新的。

编辑:如果我删除“|DataDirectory|”从连接字符串中,我在我的开发机器上收到以下错误:

Cannot attach the file 'AssetDatabase.mdf' as database 'AssetDBSource'.



所以我也删除了“初始目录 = AssetDBSource”,我得到

An attempt to attach an auto-named database for file AssetDatabase.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.



我可以想象这是因为它不知道在哪里看?所以,我为它提供了完整路径(C:..\AssetDatabase.mdf)并且它可以工作。

所以剩下的问题是:我如何获得使用 LocalDB 的相对路径?

最佳答案

我相信目标机器没有安装适用于 .NET 4 的 Update 4.0.2 或更高版本。 .NET 4 版本号可能会令人困惑,因为版本 4.0.30319似乎被所有 .NET 4 版本使用。实际上,这并不意味着您的机器具有更新 4.0.2。

可以安装吗.NET 4 Update 4.0.3 (截至今天的最新 .NET 4 更新)在目标机器上,看看问题是否消失?

或者只是验证是否安装了更新 - 只需在 .NET 4 中构建一个使用 SqlClient 的简单应用程序使用连接字符串连接到 LocalDB,并记录错误信息,以防您仍然遇到任何错误。 EF 错误消息相当通用,我不知道如何从底层 SqlClient 提供程序获取详细错误。

或者,您也可以将其迁移到 .NET 4.5。

关于sql-server - ConnectionString 上的底层提供程序失败(|DataDirectory| 和 LocalDB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14695501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com