2013-04-03 64 views
0

我需要與網絡基礎設施人員一起去了解爲什麼突然出現像以下那樣的SQL連接錯誤。連接字符串中的名稱解析無法通過網絡共享

作爲準備工作,請提供爲什麼會出現此錯誤的提示,以及我們可以嘗試在應用程序和/或基礎設施方面繞過它的事情。

  • 從網絡共享啓動應用程序時發生錯誤。
  • 在本地複製文件並在本地啓動時,不會發生此錯誤。
  • 該錯誤總是可重現的。
  • 幾個星期前(我去度假前)這是運行良好,所以我不知道什麼時候它介紹了自己。

現在複雜:

  • 用戶DomainA中
  • 工作站DomainB中
  • 數據庫服務器是DomainB中
  • 數據庫登錄與用戶名/密碼(無可信連接還)
  • 登錄域是DomainA
  • 網絡共享位於DomainA中,bu T作爲DomainA中和DomainB中之間的DFS
  • 雙向信任關係的一部分
  • 客戶端應用程序.NET 4(完整的框架)在x86 Windows 7企業版
  • 服務器的SQL Server 2008 R2企業在x64的Windows Server 2008 R2

ConnectionString的是這樣的:

Server=severname.DomainB\InstanceName,48000;Database=DBName;... 

嘗試基於IP的ConnectionString中像下面,和這樣的作品,所以它是一個名稱解析的事情:

Data Source=IPAddress\InstanceName,48000;Database=DBName;... 

由於IP地址可能會改變,我們想保留名稱(但IP地址可以工作一段時間)。
我們應該如何研究進一步的名字解析事情?

換句話說:

爲什麼從網絡共享 開始不是從本地驅動器時是名稱解析不同?爲什麼過去沒有什麼不同?

環境相當封鎖(典型的企業環境),所以簡單的調試可能很難。

IT基礎架構人員正在準備分割DomainA和DomainB(將來的一個行動:將大量用戶從DomainA移動到DomainB,然後讓DomainB成爲登錄域),然後嘗試對運行信息產生最小的影響。

建立到SQL Server的連接時發生網絡相關或特定於實例的錯誤。
服務器未找到或無法訪問。
驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。

+1

什麼是您的連接字符串?這是名稱解析問題嗎?您是否嘗試使用IP地址(可以ping/traceroute)而不是名稱? – 2013-04-03 18:45:42

+0

謝謝:在配置文件中嘗試了基於IP的連接字符串,現在它獲得了與數據庫的初始連接(將來的連接失敗,因爲它也是基於名稱的,明天將在測試數據庫中更改) – 2013-04-03 19:20:23

+0

您是在說IP地址服務器可能會更改,但名稱不會?如果數據庫被移動到不同的服務器,那麼* IP地址和名稱都會改變,所以無論如何你的連接字符串都必須改變。 – 2013-04-03 19:22:45

回答

1

現在使用IP地址。如果您確實需要連接字符串中的友好名稱,請使用hosts文件,前提是您的網絡人員無法獲得名稱解析工作。當服務器移動時,您可以更新配置文件以指向新服務器(按名稱,如果他們知道如何在當前使用該服務器,或者使用新IP,則可以指定新服務器),或者更新hosts文件以映射舊的友好名稱添加到新的IP地址。

我們真的不能告訴你爲什麼它改變或爲什麼它被打破 - 你應該當你爲他們提供的證據從您的網絡團隊一個更好的答案,例如能夠通過IP地址telnet到計算機上的端口48000但不是按名稱。他們可能不知道這個問題,但在ServerFault上的問題可能更好。

+0

會做你明天指出的,並讓結果知道。 – 2013-04-04 15:31:36