我突然开始在我的应用程序中遇到错误。
错误是:
此操作需要连接到“主”数据库。无法创建到“主”数据库的连接,因为原始数据库连接已打开并且凭据已从连接字符串中删除。提供一个未打开的连接。
代码中没有任何变化——并且在代码的其余部分中数据库访问都很好。
它停在这条线上:
var filteredContacts = dc.EAContactLists.Where(o => teams.Contains(o.Team)).ToList();
我迷路了。
我突然开始在我的应用程序中遇到错误。
错误是:
此操作需要连接到“主”数据库。无法创建到“主”数据库的连接,因为原始数据库连接已打开并且凭据已从连接字符串中删除。提供一个未打开的连接。
代码中没有任何变化——并且在代码的其余部分中数据库访问都很好。
它停在这条线上:
var filteredContacts = dc.EAContactLists.Where(o => teams.Contains(o.Team)).ToList();
我迷路了。
尝试Persist Security Info = True
在您的连接字符串中设置。
希望这可以帮助。
我遇到了这个问题,在我的情况下,通过将“Integrated Security = True”添加到连接字符串来解决它。这仅适用于使用 Windows 身份验证连接到数据库的情况。希望能帮助到你。
这个错误发生在我身上,以上都没有奏效。尴尬的是,我意识到我错过了连接字符串中的一个分号。可能有用...
添加Integrated Security=True
用于 Windows 身份验证。这对我有用。
您好,如果您尝试在架构中进行更改(例如创建表或更改某些对象),实际上这个问题仍然存在......
而你没有这样做的特权..
如果您正在使用 MVC 并且您的数据库已经在服务器中退出,则可以使用代码解决此问题
Database.SetInitializer<EmployeeContext>(null);
只需在 application_start 事件方法的 Global.asax 文件中添加此代码即可。
如果您正在处理 Windows 身份验证:
对于用户认证:
对我来说,问题是我的密码包含一个&
符号。
我太傻了。我遇到了同样的错误,然后我意识到当我没有为发布模式配置转换时,我正在包管理器控制台中以发布模式运行 update-database -verbose 命令。
这是在调试模式下对我有用的连接字符串格式。
密码=dumbeldore;持久安全信息=True;用户 ID=johnmcclain;初始目录=DB_diehard400;数据源=killthatbill;
有同样的问题。发现在我的连接字符串中,它说"Persist Security Info = True;"
,我最后缺少分号。添加了分号,一切正常
确保您没有运行 Fiddler。使用 F12 暂时禁用流量捕获为我解决了这个问题。