我們的系統使用VB6傳統應用程序和更新的.NET應用程序的組合。這些應用程序已部署到我們的客戶端,並且它們從終端服務器框中運行應用程序,SQL Server數據庫運行在不同的框中。VB6應用程序可以連接到SQL Server,但.NET應用程序不能
VB6的應用程序正常工作,而所有的.NET應用程序的失敗在啓動時(試圖連接到數據庫中讀取配置信息)每次出現錯誤:
System.Data.SqlClient.SqlException: 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: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
這裏是很奇怪的事情:我在C#中創建了一個測試.NET應用程序,該應用程序複製了.NET應用程序使用的確切連接字符串 - 我部署了一個顯示所使用的實際連接字符串的應用程序的檢測版本 - 並且測試應用程序工作 。
VB6連接字符串(作品):Provider=SQLOLEDB;Data Source=servername;Initial Catalog=databasename;User ID=username;Password=password;
.NET連接字符串(包括工作和不工作):Data Source=servername;Initial Catalog=databasename;User ID=username;Password=password;Application Name="ourappname"
我們的其他客戶都沒有遇到過這個問題,用相同的二進制文件,其中告訴我這是.NET應用程序如何與這個特定客戶端系統交互的問題。
我應該採取哪些步驟來排除故障或解決此問題?我現在真的很茫然。我希望以前有人看到過這個問題;我找不到與Google相關的任何內容。
- 兩個箱子是在Windows Server 2008 R2 SP1在VMware上運行,並且是在同一個域中
- 兩個框運行ESET NOD32;禁用並沒有改變任何東西
- SQL Server是2008 R2 RTM的默認實例(在同一個盒子上也有2008和2008 R2命名實例)
- 應用程序(和我的測試應用程序)是.NET 4.0
- 應用程序使用SQL登錄進行身份驗證(是的,我檢查了失敗應用程序使用的密碼是否正確)
- 某些.NET應用程序使用不同的代碼來執行應用程序啓動,但它們都顯示相同錯誤
- 一些.NET應用程序是C#,一些是VB,一些是混合的(VB應用程序,C#內核程序集)
- 我試着修復.NET 4.0安裝
- 我試圖重新啓動這兩個框
- 我已經試過部署源二進制文件,使得我們的部署子系統是規避(如果這是造成某種腐敗)
- 我本地編譯所構建的應用程序遇到相同的行爲,原來,這是通過團隊系統內置
如果測試.NET應用程序的工作那麼它是不是與.NET的一個問題。確定您正在運行的測試應用程序與不能正常運行的生產應用程序之間有什麼不同。 – Paparazzi 2012-08-07 19:53:10
@Blam:是的,就是這樣 - 相同的二進制文件在別處工作,而不是在這個特定的客戶端系統上。我會看看我是否可以將生產應用程序剝離到它的工作點。我認爲這可能是一個構建配置問題或類似的東西。 – 2012-08-07 19:56:37