2011-09-18 3 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 Browser Service는 로컬 인스턴스를 "검색 가능"으로 만들 수 있습니다. EnumAvailableSqlServers()를 호출하는 앱과 원하는 데이터베이스 (여기서는 로컬 SQL Express 인스턴스)가 동일한 컴퓨터에있는 경우에도 마찬가지입니다. –