为什么我在使用 ASP 页面时会收到此错误“[DBNETLIB][ConnectionRead (recv()).]一般网络错误”

StackOverflow https://stackoverflow.com/questions/46841

有时,在 ASP(经典)站点上,用户会收到此错误:

[DBNETLIB][ConnectionRead (recv()).]General network error.

似乎是随机的,没有连接到任何特定页面。SQL 服务器与 Web 服务器是分开的,我的猜测是,两者之间的“链接”每隔一段时间就会断开。路由器/交换机问题...或者其他人以前遇到过这个问题吗?

有帮助吗?

解决方案

使用与您相同的设置(即单独的网络和数据库服务器),我时常看到它,并且它始终是服务器之间的连接问题 - 通常在数据库服务器重新启动时但有时在有通信时系统某处出现问题。我没有看到它是由 ASP 代码本身的任何问题触发的,这就是为什么您看到它显然是随机的并且没有连接到特定页面。

其他提示

我想将此资源添加到此处的讨论中,因为这是一个常见错误并且诊断起来相当混乱。这是 Microsoft 就该主题整理的 PowerPoint:

http://support.microsoft.com/kb/875285/en-us

我已经多次看到这个错误。这可能是由多种原因引起的,包括网络错误:)。

但原因之一可能是 MS-SQL 的内置功能。

该功能可检测 DoS 攻击——在本例中,来自 Web 服务器的请求过多:)。

但我不知道我们是如何修复它的:(。

SQL 服务器配置管理器

禁用 TCP/IP,启用共享内存和命名管道

祝你好运 !

不是一个完全相同的解决方案,也不是相同的环境。但是,我在 VBA/Excel 程序中收到此错误,问题是我有一个尚未在 SQL Server Management Studio (SSMS) 中提交的挂起事务。关闭SSMS后,一切正常。所以教训是挂起的事务可以阻止存储过程继续(这是显而易见的事实,我知道!)。希望这对这里的人有帮助。

打开命令提示符 - 以管理员身份运行并在客户端键入以下命令

netsh advfirewall set allprofiles state off

FWIW,我从 Excel 中收到此错误,该错误会挂在在 SSMS 中正常工作的 EXEC 上。我以前见过有问题的查询,由于“参数嗅探”和不合适的缓存查询计划,这些查询在 SSMS 中也没有问题。对 SP 进行较小的编辑就解决了这个问题,之后它以原始形式工作正常。我很想听听是否有人也遇到过这种情况。尝试旧的好 OPTION (OPTIMIZE FOR UNKNOWN) :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top