2016-05-16 165 views
0

随着我的Windows服务应用程序,我试图连接2个名为db1和db2的数据库。 db db1和db2都存在于一个SQL服务器中。与SQL数据库的连接失败。

我能够用服务来连接DB1和读取所需的细节,但我得到以下错误,而连接DB2

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

我想这个问题可能是因为数据库/服务器名是在连接字符串时不正确连接到db2。 这在开发环境中工作正常,但不在现场。
有没有什么办法,以便我们可以找出它试图连接的数据库/服务器名称,而无需调试。 是否有类似错误日志的sql会在连接期间捕获?

+0

您的登录是否有权访问'db2' –

+0

考虑到您仍在测试并且正在查找日志,**为什么不制作自己的** **只需尝试捕获该连接并输出异常和相关数据(例如连接字符串,用户名等)到一个文本文件 –

+0

@AlfieGoodacre我完成了开发,在这种情况下,我必须修改代码这是很好的记录连接的想法我从来没有想过。 我签入了事件查看器,但没有服务器/数据库名称 –

回答

1

验证您的防火墙设置。默认端口是TCP 1433.要排除防火墙,您可以禁用/启用它,并尝试连接。

使用SQL Server配置管理器并验证服务正在运行。

+2

是的sqlserver服务正在运行,否则它不会有连接db1也。 –

0

首先尝试从应用程序测试连接提到的数据库。我认为这个问题是因为你的登录凭证。请先确认。

+0

我可以通过SSMS以与该特定用户的配置中提到的相同凭据登录到SQL Server。 –

+0

https://youtu.be/OEcd5oRRPmM。按照这个视频,并从您的应用程序连接。 – Sarat