2017-11-10 593 views
0

我在Windows 10机器上安装了Microsoft SQL Server Management Studio v17.3。我创建了一个中央管理服务器实例并成功连接到它。SSMS无法连接到远程服务器,崩溃

我创建了另一个中央管理服务器实例到一个不同的URL并通过测试连接。但是,第二个中央管理服务器实例无法显示在连接到服务器的服务器名称下拉列表中。相反,我第一次创建并从此删除的旧实例出现。

当我点击浏览服务器时,我在数据库引擎下得到一个很长的列表,但不是我想要的服务器。

当我右键单击已注册的服务器(我创建的第二个并且没有出现在下拉列表中)并选择对象资源管理器时,SSMS停止工作消息,随后SSMS重新启动。

事件查看器报告两个错误。从上至下:

Event 1000, Application Error 

Faulting application name: Ssms.exe, version: 2017.140.17199.0, time stamp: 0x59d44f4f 
Faulting module name: KERNELBASE.dll, version: 10.0.15063.674, time stamp: 0x6d16dd24 
Exception code: 0xe0434352 
Fault offset: 0x000eb872 
Faulting process id: 0x22c8 
Faulting application start time: 0x01d35a6d01c23a7f 
Faulting application path: C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe 
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll 
Report Id: 7597bf9e-4992-4f78-ac09-2bdb12a4ee2f 
Faulting package full name: 
Faulting package-relative application ID: 

第二个错误是:

Event 1026, .NET Runtime 

Application: Ssms.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Data.SqlClient.SqlException 
    at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction, System.Object, System.Data.DataSet, Boolean) 
    at Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(System.Data.SqlClient.SqlCommand) 

Exception Info: Microsoft.SqlServer.Management.Common.ExecutionFailureException 
    at Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(System.Data.SqlClient.SqlCommand) 
    at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteReader(System.String, System.Data.SqlClient.SqlCommand ByRef) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.ExecuteSql.GetDataReader(System.String, System.Data.SqlClient.SqlCommand ByRef) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.DataProvider.SetConnectionAndQuery(Microsoft.SqlServer.Management.Sdk.Sfc.ExecuteSql, System.String) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.ExecuteSql.GetDataProvider(System.Collections.Specialized.StringCollection, System.Object, Microsoft.SqlServer.Management.Sdk.Sfc.StatementBuilder, RetriveMode) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SqlObjectBase.FillData(Microsoft.SqlServer.Management.Sdk.Sfc.ResultType, System.Collections.Specialized.StringCollection, System.Object, Microsoft.SqlServer.Management.Sdk.Sfc.StatementBuilder) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SqlObjectBase.FillDataWithUseFailure(Microsoft.SqlServer.Management.Sdk.Sfc.SqlEnumResult, Microsoft.SqlServer.Management.Sdk.Sfc.ResultType) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SqlObjectBase.BuildResult(Microsoft.SqlServer.Management.Sdk.Sfc.EnumResult) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SqlObjectBase.GetData(Microsoft.SqlServer.Management.Sdk.Sfc.EnumResult) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData() 
    at Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData(Microsoft.SqlServer.Management.Sdk.Sfc.Request, System.Object) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.GetData(System.Object, Microsoft.SqlServer.Management.Sdk.Sfc.Request) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SfcInstance.GetInitDataReader(Microsoft.SqlServer.Management.Common.ISfcConnection, Microsoft.SqlServer.Management.Sdk.Sfc.Urn, System.String[], Microsoft.SqlServer.Management.Sdk.Sfc.OrderBy[]) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SfcInstance.Initialize() 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SfcCollection`3[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].CreateAndInitializeChildObject(System.__Canon) 
    at Microsoft.SqlServer.Management.Sdk.Sfc.SfcCollatedDictionaryCollection`3[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetObjectByKey(System.__Canon) 
    at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServersStore.get_DatabaseEngineServerGroup() 
    at Microsoft.SqlServer.Management.RegisteredServers.SharedServer.GetServerGroupByType(Microsoft.SqlServer.Management.Common.ServerType) 
    at Microsoft.SqlServer.Management.RegisteredServers.Utils.GetServerGroupFromNode(System.Windows.Forms.TreeNode, Microsoft.SqlServer.Management.Common.ServerType) 
    at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.get_SelectedNodeAsServerGroup() 
    at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.ConnectOeToCurrentNode(Boolean) 
    at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.OnConnectOeToCurrentNode(System.Object, System.EventArgs) 
    at System.Windows.Forms.MenuItem.OnClick(System.EventArgs) 
    at System.Windows.Forms.MenuItem+MenuItemData.Execute() 
    at System.Windows.Forms.Command.Invoke() 
    at System.Windows.Forms.Command.DispatchID(Int32) 
    at System.Windows.Forms.Control.WmCommand(System.Windows.Forms.Message ByRef) 
    at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef) 
    at System.Windows.Forms.TreeView.WndProc(System.Windows.Forms.Message ByRef) 
    at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef) 
    at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef) 
    at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr) 

我试图卸载并重新安装SSMS。我安装了最新的 Visual C++ 2013可再发行组件包。版本12.00.40660。

我还安装了Visual Studio Express,希望它可以修复任何.NET问题。

DBA可以使用我的凭据登录到远程服务器,所以它是我的机器上的东西。任何帮助将不胜感激。

回答

0

我对SSMS安装进行了修复。之后,错误变得清晰了。这是一个许可的错误。 DBA让我访问一个数据库,但该数据库依赖于第二个数据库。一旦DBA授予我的userId权限访问第二个数据库一切正常。

至于为什么新安装需要修复;不知道。重复卸载/重新安装SSMS没有解决它。