C#通过HTTP协议上传报另一个“由于系统udp缓冲区满了,数据是否会丢失空间不足或队列已满,不能执行套接字上的操做?”的错误

win2008 服务器系统上部署一个flask网站,突然不能访问,报错信息为:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作解决方案修改两个注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort如果没有,则手动创建 DWord(32位)”数值数据“改为十进制65534 或者认为适当的值。此值表示 用户最大使用的端口数量,默认为5000。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TCPTimedWaitDelay如果没有,则手动创建 DWord(32位) ”数值数据“改为十进制30 或者你认为适当的值。此值表示一个关闭后的端口等待多久之后可以重新使用,默认为120秒,也就是2分钟才可以重新使用。参考https://www.jianshu.com/p/684c79244743}
这个贴我在SQL Server 疑难杂症已经发了一遍了,请版主允许我也在这里发一次,因为这问题既是数据库的问题,同时也是ASP.NET的问题,我都不知道发到哪好了,为了增加高手看到的几率,只能也在这里发一遍了.最近做了一个简单的查询网页,但网页永久之后就会出现这个标题的错误而无法访问了详细错误信息如下在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: TCP Provider, error: 0 - 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。)在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionIntern我百度过都是说由于连接没有关闭造成的,但我查过代码确认每次数据查询后都已经显式调用close关闭连接了,而且查看服务器的连接列表(netstat 命令)也没有看到未关闭的连接,而且只要出现这个错误,所有程序都无法再上网了,QQ,浏览器都无法再打开新的连接,但其他电脑是可以连接到这个电脑的数据库和网页的(没有查询数据库的页面还可以访问).最后只能重启SQL Server 才可以(重启IIS没用,必须重启SQL Server)已经使用了连接池,而且错误提示也不是提示连接池满的错误.百度上能找到类似的问题的解决办法我都试过了(修改注册表增加端口数等)我的网页很简单,VB.NET写的一个简单查询页面,返回一个表格,主要代码如下:Dim conn As SqlConnectionTryconn = New SqlConnection("Server=服务器地址;uid=用户名;pwd=密码;database=数据库名;Connect Timeout=60")conn.Open()'''利用conn查询数据库的代码和显示表格内容的代码Catch ex As Exception'''错误提示代码FinallyIf Not conn Is Nothing AndAlso conn.State <> ConnectionState.Closed Thenconn.Close()conn.Dispose()conn = NothingEnd IfEnd Try有哪个大咖帮帮忙分析一下或者有遇到类似错误知道问题所在的吗???}

我要回帖

更多关于 udp缓冲区满了,数据是否会丢失 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信