SSMS无法连接到远程服务器,崩溃

时间:2017-11-10 22:35:34

标签: .net windows-10 ssms-2017

我在Windows 10机器上安装了Microsoft SQL Server Management Studio v17.3。我创建了一个Central Management Server实例并成功连接到它。

我为另一个URL创建了第二个Central Management Server实例,并传递了Test连接。但是,第二个中央管理服务器实例无法显示在“连接到服务器”的“服务器名称”下拉列表中。相反,我首先创建并删除了以后的旧实例。

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

当我右键单击已注册的服务器(我创建的第二个服务器以及未显示在下拉列表中)并选择对象资源管理器时,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可以使用我的凭据登录远程服务器,因此它在我的机器上。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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