2010-05-06 66 views
1

我知道互联网上有很多关于解决这个问题的信息,但它并没有帮助我。SQL Server 2005和'一般网络错误'

我的Delphi应用程序使用dbExpress控件来访问数据库并执行SQL查询。但是,每两天一次,因为数据库连接失败而停止工作。这发生在具有不同版本的Windows的几台不同的计算机上。 MSSQL Server 2005(版本9.0.4035)安装在它们中的每一个上。

上面提到的应用程序每隔几秒执行一次查询,它们主要是插入命令。每隔几天,我得到类似以下一系列异常:

[DBNETLIB] [ConnectionOpen (PreLoginHandshake())]一般网络 错误。检查您的网络 文档。

然后SQL服务器变得无法访问,直到我手动重新启动它。

我在互联网上找到的信息说我应该安装一些服务包,更改一些注册表条目等,但相信我,这些都没有帮助,我不知道现在还有什么办法。

你能帮我解决这个问题吗?任何线索或想法?如有必要,我可以提供更多有关服务器或应用程序的信息。

非常感谢您提前。

回答

2

你的连接字符串是什么样的? 网络连接之间是否有防火墙(硬件或软件)?

退房此链接的想法http://blogs.msdn.com/sql_protocols/archive/2005/10/29/486861.aspx

重读您的文章,这是相当有趣的是,你需要重新启动SQL Server..that的一个相当严肃处理。通常这些网络错误由于与非sql相关的项目而稍纵即逝。也许你没有正确关闭所有的连接。在SQL服务器上执行“netstat -an”并查看有多少tcpip连接徘徊。看看企业经理。由于您必须重新启动SQL Server,因此我首先要看的是SQL Server本身的错误日志,然后是Windows事件日志。

看完所有这些之后的下一步,如果您仍然遇到问题,那么我强烈建议您打开与Microsoft的故障单。这通常不昂贵,而且他们在这类事情上非常擅长。

+0

感谢您的回答。如果涉及到连接字符串,它们看起来就是这样: DriverName = MSSQL; HostName =(LOCAL)\ InstanceName; OS Authentication = False; User_Name = sa; Password = 123456; 或者那样: DriverName = MSSQL; HostName =(LOCAL)\ SQLEXPRESS; OS Authentication = True; 如您所见,应用程序在运行SQL Server的同一台计算机上运行。 如果涉及到防火墙,我将不得不检查(不幸的是只有在下周末),但我认为没有任何人(或者如果有的话,他们被关闭)。 我会尽快尝试您的建议。 – 2010-05-08 11:07:54

+0

让我把这些连接字符串写在单独的注释中,这样他们就清楚了...... – 2010-05-08 11:09:04

+0

DriverName = MSSQL; HostName =(LOCAL)\ InstanceName; OS Authentication = False; User_Name = sa; Password = 123456; – 2010-05-08 11:09:57