IIS的SQL连接在重载下失效,重置IIS可暂时修复

4 人关注

服务器1:SQL Server 2008标准版 服务器2:Windows 2008 Server R2, IIS 7.0

服务器2上的一个网站需要服务器1上SQL服务器中的数据。

在一段时间内(有时是几周),一切工作正常。 然后,在重负荷下,服务器2报告说它不能连接服务器1上的SQL服务器。 一旦服务器2上的IIS报告它不能连接到服务器1上的SQL,它就不会好转,直到服务器2上的IIS被重新启动。 也许重启应用程序池会和完全重设IIS一样有效。 我并不确定。

我试着改变连接字符串,将连接池大小增加到不合理的大值(1000)。 失败仍然发生。

该网站是用C#编写的。 数据访问层是NHibernate。

这里是例外情况的开始。

[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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)]
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +428
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
   System.Data.SqlClient.SqlConnection.Open() +122
   NHibernate.Connection.DriverConnectionProvider.GetConnection() +60
   NHibernate.Impl.SessionFactoryImpl.OpenConnection() +39