我有2个应用程序连接到同一个数据库,当单独启动每个应用程序都很好。当我在同一时间启动它们时,其中一个将获得登录异常,如下所示,这种情况发生在99%的尝试中(所以很少它们一起很好)。
它始终是获得异常(1)的相同应用程序:
如果我延迟第二个开始,第一个应用程序将崩溃。 以下是一些sql server日志:
2015-09-18 07:27:20.43 Logon Error: 18456, Severity: 14, State: 38.
2015-09-18 07:27:20.43 Logon Login failed for user 'domain\user'. Reason: Failed to open the explicitly specified database 'dbname'. [CLIENT: <local machine>]
2015-09-18 07:27:21.32 spid55 Setting database option ENABLE_BROKER to ON for database 'dbname'.
在SQL Server日志中,它总是那样,2行登录错误,然后是ENABLE_BROKER行。我认为服务经纪人与之前的2有关。
有关envirenmont的详细信息:SQL Server 11.0.3153.0 - 在VM上运行的64位,Windows 7(7601)。
答案 0 :(得分:0)
因为您的数据库处于单用户模式。对于单用户模式,只有一个客户端可以连接到数据库。
将其更改为多用户模式
document.getElementById("txtArea").innerHTML += this.value + ', ';
您可以在此处阅读有关单用户模式的更多信息:https://msdn.microsoft.com/en-us/library/ms345598.aspx?
答案 1 :(得分:0)
最后我找到了导致这种情况的原因,下面的alter database语句我现在还没有看到它的用法(使用服务代理时,它应该由db admin启用,而不是每次应用时都启用重启)。删除该代码后,一切似乎都很好。
ALTER DATABASE [dbname] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
继承代码乐趣:-)(不是)