【发布时间】:2020-09-03 10:42:52
【问题描述】:
我知道这有点含糊,但我无法确定问题所在。
当我对本地数据库运行一些代码时,它运行良好。当我使用远程数据库时出现错误。 它发生在程序执行的中间。 DBup 升级运行,然后手动查询失败,出现以下异常:
System.Data.SqlClient.SqlException (0x80131904):重置连接会导致与初始登录不同的状态。登录失败。 用户“sa”登录失败。
我正在使用new SqlConnection() 手动创建SqlConnection,我也在使用DbUp
我不确定我做错了什么。也不是从哪里开始调试这个。
ConnectionString 不变,我一直使用sa 连接数据库。
一个很好的问题是“重置连接”是什么意思?我是怎么做到的?
【问题讨论】:
-
如果数据库连接到服务器,切勿在连接字符串中使用 AttachDB (localdb) 属性(删除)。服务器拥有 mdf 数据库文件,不允许用户直接访问该文件。您必须通过服务器和实例连接到数据库。为了调试,我使用 SQL Server Management Studio。 SSMS 登录窗口将显示应在 c# 连接字符串中使用的服务器和实例名称。登录窗口还显示 Window Credental,它在连接字符串中等效于 Integrated Security = true 并使用用户(或组)窗口凭据。
-
@Igor 解决方案是使用普通的 ado.net,我正在这样做。
-
@jdweng 我没有使用 (localdb) 它只是一个在 localhost 上运行的 SQLServer 实例
-
要使本地计算机和远程计算机的连接正常工作,必须具有相同的凭据。通常我会将数据库凭据设置为 Window 用户组,然后将用户放入该组。必须在本地和远程计算机上分配组。公司通常具有可用于数据库凭据的组策略设置。
标签: c# .net sql-server sqlconnection dbup