2010-05-06 67 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