2011-09-18 70 views
2

我已經在那裏我已經添加了一個參考EnumAvailableSqlServers返回空列表

Microsoft.SqlServer.Smo Microsoft.SqlServer.ConnectionInfo Microsoft.SqlServer.Management.Sdk.Sfc

和一個奇怪的現象調用SmoApplication.EnumAvailableSqlServers時,它會在我的開發機器上運行時返回可用服務器的DataTable。

當我部署到我的同事的機器時,DataTable返回爲空。

奇怪的是,以下

 Dim server As New Microsoft.SqlServer.Management.Smo.Server("localhost\sqlexpress") 
     For Each db In server.Databases 
      DoSomething(db.name) 
     Next 

不會返回在兩臺機器上安裝的數據庫。

我一直在使用最簡單的部署,即複製\ bin \ Release目錄。我懷疑另一臺機器上有一個缺少的程序集,但是兩臺機器上的數據庫都返回的事實也許與此相矛盾。

想法?

+0

你得多解釋一下,如果在兩臺機器上你都可以參考在本地主機上運行的SQL Express的實例,這隻會告訴你在兩臺機器上安裝了SQL Express,你還有哪些其他服務器或實例字符串使用查詢againts時它不起作用?您在網絡上搜索的SQL Server是什麼,您如何從它運行的機器上獲取它? –

回答

3

我也有同樣的問題。我通過啓動SQL Server Browser服務來解決它。 http://msdn.microsoft.com/en-us/library/ms165734(v=sql.90).aspx

+0

+1這完全有可能。 SQL Server瀏覽器服務可用於使本地實例「可發現」。如果調用'EnumAvailableSqlServers()'的應用程序和所需的數據庫(這裏是本地SQL Express實例)都位於同一臺計算機上,情況也是如此。 –