29

我突然开始在我的应用程序中遇到错误。

错误是:

此操作需要连接到“主”数据库。无法创建到“主”数据库的连接,因为原始数据库连接已打开并且凭据已从连接字符串中删除。提供一个未打开的连接。

代码中没有任何变化——并且在代码的其余部分中数据库访问都很好。

它停在这条线上:

var filteredContacts = dc.EAContactLists.Where(o => teams.Contains(o.Team)).ToList();

我迷路了。

4

10 回答 10

43

尝试Persist Security Info = True在您的连接字符串中设置。

希望这可以帮助。

于 2013-11-14T12:44:00.717 回答
15

我遇到了这个问题,在我的情况下,通过将“Integrated Security = True”添加到连接字符串来解决它。这仅适用于使用 Windows 身份验证连接到数据库的情况。希望能帮助到你。

于 2016-01-06T17:26:29.543 回答
12

这个错误发生在我身上,以上都没有奏效。尴尬的是,我意识到我错过了连接字符串中的一个分号。可能有用...

于 2016-08-27T18:19:14.557 回答
9

添加Integrated Security=True用于 Windows 身份验证。这对我有用。

于 2017-05-18T10:44:25.237 回答
3

您好,如果您尝试在架构中进行更改(例如创建表或更改某些对象),实际上这个问题仍然存在......

而你没有这样做的特权..

如果您正在使用 MVC 并且您的数据库已经在服务器中退出,则可以使用代码解决此问题

Database.SetInitializer<EmployeeContext>(null);

只需在 application_start 事件方法的 Global.asax 文件中添加此代码即可。

于 2015-09-17T16:47:30.053 回答
2

如果您正在处理 Windows 身份验证:

  • 您可以将“Integrated Security=True”添加到您的连接字符串。

对于用户认证:

  • 您必须将 sql server 身份验证信息 ("uid=YourUserName; Password=yourpassword;") 添加到您的 connectionString。
于 2017-11-22T17:20:33.780 回答
0

对我来说,问题是我的密码包含一个&符号。

于 2020-09-15T10:36:23.490 回答
0

我太傻了。我遇到了同样的错误,然后我意识到当我没有为发布模式配置转换时,我正在包管理器控制台中以发布模式运行 update-database -verbose 命令。

这是在调试模式下对我有用的连接字符串格式。

密码=dumbeldore;持久安全信息=True;用户 ID=johnmcclain;初始目录=DB_diehard400;数据源=killthatbill;

  • 出于安全原因编辑了连接字符串中的敏感信息。请仅遵循格式。
于 2018-05-01T18:44:24.493 回答
-1

有同样的问题。发现在我的连接字符串中,它说"Persist Security Info = True;",我最后缺少分号。添加了分号,一切正常

于 2022-01-27T11:55:53.970 回答
-1

确保您没有运行 Fiddler。使用 F12 暂时禁用流量捕获为我解决了这个问题。

于 2016-12-15T12:49:32.443 回答