3

我遇到了无法解决的间歇性 SQL 连接问题。首先,我将解释设置:

Windows 2008 R2 Standard SP1(以及通过 Windows 更新提供的所有补丁):

  • 此服务器运行 IIS 7.5
  • ASP.NET MVC 4 Web 应用程序在它自己的应用程序池中运行
  • App Pool 身份用于设置包含代码的文件夹的权限
  • Web App 在连接字符串中传递了一个用户名和密码——服务器 xxx;数据库=xxx;持久安全信息=真;用户 ID=xxx; 密码=xxx; 池化=假;网络=DBMSSOCN;
  • elmah 用于记录错误

Windows 2008 R2 Standard SP1(以及通过 Windows 更新提供的所有补丁):

  • 此服务器运行 SQL Server 2008 R2 Web Edition SP2
  • TCP/IP 是唯一启用的客户端协议

这些是由我们的云提供商托管的 VM。云提供商从基础架构的角度进行了调查,但找不到任何问题。

产生的错误信息如下:

System.Data.SqlClient.SqlException (0x80131904): 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: SQL Network Interfaces, error: 9 - Associating port with I/O completion mechanism failed)

我一直无法找到有关错误代码 9 的任何信息。

System.Data.SqlClient.SqlException (0x80131904): 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: TCP Provider, error: 0 - An operation was attempted on something that is not a socket.) ---> System.ComponentModel.Win32Exception (0x80004005): An operation was attempted on something that is not a socket

在生成这些错误时,IIS 将显示“友好错误”页面。问题通常需要大约 15 分钟才能自行解决或 IIS 重置。当这个问题第一次出现时,我从 codeplex 下载了一个 SQL 负载生成器,并使用多个查询运行了多达 300 个同时连接的测试,一切正常。当 Web 应用程序生成 SQL 异常时,我还运行了另一个测试 - 来自负载测试的所有连接都成功。这真的让我很困惑!?!

中断期间不会创建任何事件日志。

对我来说,错误消息表明连接到 SQL 框时出现问题,但是在最近一次中断期间运行的负载测试与此相矛盾——但 IIS 仍在提供内容(配置的错误消息)。

我意识到这是一个困难的问题,但是我将非常感谢有关查找错误原因的技术的任何建议。任何有关错误 9 的信息也会有所帮助。

4

0 回答 0