为什么我的 ClickOnce 应用程序会尝试连接到 localdb?
Why might my ClickOnce application try to connect to localdb?
我使用 C# 和 Entity Framework 构建了一个 WinForms 应用程序。数据都在SQL服务器中。我可以验证连接字符串是否正确引用了该数据库和 returns 预期数据。当我在 VS 中 运行 时一切正常,甚至我直接 运行 输出。
当我将它部署为 ClickOnce 应用程序时,问题就开始了。突然间,我收到以下异常:
System.ArgumentException: Invalid value for key 'attachdbfilename'.
当我搜索这个错误时,大多数结果似乎是关于 a) asp 应用程序 and/or b) 关于应用程序试图连接到一个不存在的localdb 的实例。
我已经将问题定位到我的数据上下文的初始化。虽然有点难以调试,因为它 运行 在 VS 中很好。
对于它的价值,我的连接字符串设置如下(在我的数据模型库项目和 winforms 项目的 App.Config 文件中):
<parameter value="Server=ARUK-SRV2;Data Source=ARUK-SRV2\ARUKSQL;Initial Catalog=TPS;Integrated Security=True" />
有人遇到过这个吗?有人对修复它有什么建议吗?
建议搜索 attachdbfilename。这导致了 0 个结果,但确实给了我一个想法。我搜索了 "localdb" 并找到了三个匹配项 - 在我的 App.Config 个文件中各有一个。
虽然我更改了连接字符串以指向我们的 SQL 服务器实例,但我将默认连接工厂设置为 LocalDbConnectionFactory。 (哦!)
大卫·奥班多 blog post explaining what needs to be changed。从本质上讲,这相当于改变
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
到
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
感谢指点!
我使用 C# 和 Entity Framework 构建了一个 WinForms 应用程序。数据都在SQL服务器中。我可以验证连接字符串是否正确引用了该数据库和 returns 预期数据。当我在 VS 中 运行 时一切正常,甚至我直接 运行 输出。
当我将它部署为 ClickOnce 应用程序时,问题就开始了。突然间,我收到以下异常:
System.ArgumentException: Invalid value for key 'attachdbfilename'.
当我搜索这个错误时,大多数结果似乎是关于 a) asp 应用程序 and/or b) 关于应用程序试图连接到一个不存在的localdb 的实例。
我已经将问题定位到我的数据上下文的初始化。虽然有点难以调试,因为它 运行 在 VS 中很好。
对于它的价值,我的连接字符串设置如下(在我的数据模型库项目和 winforms 项目的 App.Config 文件中):
<parameter value="Server=ARUK-SRV2;Data Source=ARUK-SRV2\ARUKSQL;Initial Catalog=TPS;Integrated Security=True" />
有人遇到过这个吗?有人对修复它有什么建议吗?
虽然我更改了连接字符串以指向我们的 SQL 服务器实例,但我将默认连接工厂设置为 LocalDbConnectionFactory。 (哦!)
大卫·奥班多 blog post explaining what needs to be changed。从本质上讲,这相当于改变
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
到
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
感谢指点!