繁体   English   中英

IIS / SQL Server连接错误

[英]IIS / SQL Server connection error

我正在做一个示例代码,我陷入了一个非常奇怪的行为,我试图使用此连接字符串连接到SQL Server

"Data Source=" + ServerName + "." + DomainName  + ";Initial Catalog="+DBName+";Integrated Security = false;Persist Security Info=false;User ID=sa;Password=" & Mypassword & ";Connection Timeout=90"

显然我没有使用Windows集成身份验证或(SSPI),当我在Web应用程序上使用它时,我收到此错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

请注意,我创建了一个.Net应用程序,该应用程序使用相同的连接字符串,并且从IIS所在的计算机运行,并且工作正常。

以下是我所做的步骤:

  1. 我检查了我打开它的SQL客户端配置,并启用了协议tcp和命名管道。

  2. 我在IIS上进行了模拟并使用了Windows身份验证,并确保IIS使用与我相同的凭据。

  3. 我用Wireshark看到wut是两个连接之间的区别,我无法理解输出,但似乎从IIS它总是尝试使用Windows身份验证,虽然我已经明确地使字符串,使它不使用Windows身份验证基本上发生的是,在连接开始时的某些协商似乎从两个应用程序“not_defined_in_RFC4178 @ please_ignore”相同,然后IIS总是转到NTLMSSP注意到我的用户除了通过用户名之外没有访问数据库的权限和密码,因此当IIS从应用程序正常成功时,协商会失败。

我的问题是如何解决这个问题,我假设有一些配置要求IIS中的任何SQL客户端使用Windows身份验证,但我不知道在哪里或如何禁用它

我注意到我没有对SQL Server连接字符串使用web.config配置,IIS7会出现此问题。

以下是我要检查的第一件事:

  1. 验证应用程序池用户是否有权访问网络资源

    • 由于您声明它在您登录计算机时有效,请尝试将应用程序池用户更改为您登录计算机的用户。
  2. 检查您的web.config中是否启用了模拟。 如果这样做,请确保用户可以访问网络资源。

  3. 尝试更改连接字符串以使用IP地址(作为测试)。 如果这解决了问题,可能是某种DNS问题。

    • 确保在IP地址末尾包含a,1433
    • 在连接字符串中设置Network Library=DBMSSOCN (有关详细信息,请参阅ConnectionStrings.com上的这篇文章 。)

如果您键入如上确切的连接字符串,请改变周围连接字符串+ 密码

上面写的连接字符串是无效的字符串,因为在所有的字符串可以串联使用+不使用在C#中,我知道另一个字符串。

除了其他人指出的内容之外,我唯一还记得错误消息,特别是“命名管道”参考是基于SQL-Server的设置方式。

为了确认,我进入了我的SQL Server配置管理器版本。 然后,查看“SQL Native Client 11.0配置”(以防万一,32位和64位)并打开以显示“客户端协议”。 其中显示了共享内存,TCP / IP和命名管道的选项。 确保启用了“命名管道”协议。

你提到SQL Server在另一台机器上。 您应该确保该计算机上的SQL Server Browser服务正在运行。

您将在Windows服务管理控制台(以及其他位置)中找到它。

此外,您必须确保防火墙中的UDP端口1434已打开。

检查ServerName,DomainName,DBName和MyPassword的值。 他们是对的吗? 他们如何填充?

先检查一下:

确保您的SQL Server接受远程连接

Sql Server实例 - > Properities-> Connections->允许重新连接。

在第二步中执行此步骤:

尝试使用“服务器资源管理器”窗格在VS中设置连接:

1)打开服务器资源管理器

2)右键单击“数据连接”并选择“添加连接”

3)在随后的对话框中,选择您的DataSource和数据库,指定安全信息,然后按“测试连接”按钮。

4)连接工作时,按“确定”

5)在Server Explorer窗格中突出显示您的数据库,然后查看Properties窗格。 将显示连接字符串的工作示例,您可以将其复制并粘贴到应用程序或配置文件中。

让我们检查一下解决此错误的步骤。

1)SQL Server应该启动并运行。 2)在SQL Server配置中启用TCP / IP 3)在Windows防火墙中打开端口4)启用远程连接5)启用SQL Server Browser服务6)在防火墙中创建sqlbrowser.exe的例外7)重新创建别名

来源于此

希望能帮助到你

可能是客户端系统无法识别SQL服务器

因为sql server network不可用而发生错误,也可能是网络故障导致的错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM