使用固定选项卡时,SQL Server Management Studio 17.9崩溃

时间:2018-09-26 12:04:44

标签: visual-studio-2017 ssms sql-server-2017

由于正在工作,我需要在笔记本电脑,SQL Server Management Studio和Visual Studio 2017 Dev上安装最新的SQL Server(到目前为止,所有最新版本都可以在Microsoft网站上下载)。 / p>

在我安装VS 2017之前,一切工作正常(有很多选项-总安装量约为50GB,这反映了已完成的工作)。完成后,当我在选项卡之间切换时,SSMS崩溃。是。我在选项卡A中打开了查询A,然后在选项卡B中打开了查询B(连接到同一服务器),当我单击刚加载的查询B(在Windows资源管理器中双击并使用默认的.sql文件关联)时-繁荣:否错误消息,无警告。 SSMS会显示转轮5秒钟,然后重新启动。

现在显然无法使用,但是在我推挤Windows并从头开始重新安装所有组件之前,是否有人遇到过类似的问题并找到了原因?

已经尝试过SSMS修复,VS修复,SSMS重新安装,VS重新安装,SSMS卸载然后重新安装,SQl卸载+ SSMS unisntall + VS卸载(由于VS安装程序想要更新,所以无法卸载整个VS,不得不手动逐个应用),然后以Microsoft建议的顺序重新安装:SQL Server,SSMS,VS。再次-正常工作,直到VS安装完成...

任何帮助表示赞赏。

经过进一步调查后,需要固定其中一个选项卡以使崩溃发生。但是当我固定任何标签的那一刻...全部消失了。因此,SSMS和VS之间可能没有链接,但现在已复制了3次:打开选项卡,固定,打开另一个选项卡,首先单击,然后再次单击并崩溃。

经过一段时间的进一步调查(2018年10月11日):

问题再次发生在我身上。但是目前尚不清楚是 DisplayPort 还是 Displaylink到DP (因为我仍在使用DisplayLink解决方案使用端口复制器),这就是导致笔记本电脑故障的原因没有DP输出,只有HDMI。我也无法在不破坏其他人工作的情况下在其他工作站上复制问题。

DisplayPort的链接仍然存在,因此切换到HDMI仍然是一种有效的解决方法(如以下我的回答),但问题绝对是与Visual Studio某种程度上有关的软件。或至少在事件查看器中针对此错误显示的内容:

  

应用程序:Ssms.exe框架版本:v4.0.30319说明:   进程由于未处理的异常而终止。异常信息:   System.Windows.Rect.set_Height(Double)处的System.ArgumentException   在   Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.NormalizeTabHeight()   在   Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.ExpandTabStripCore()   在   Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.MeasureTabStrip()   在   Microsoft.VisualStudio.PlatformUI.Shell.Controls.DockPreviewWindow.OnPanelLayoutUpdated(System.Object)   在   Microsoft.VisualStudio.PlatformUI.Shell.Controls.DockPreviewWindow.OnPanelLayoutUpdated(System.Object,   System.Windows.RoutedEventArgs)   System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object,   System.Windows.RoutedEventArgs)   System.Windows.EventRoute.InvokeHandlersImpl(System.Object,   System.Windows.RoutedEventArgs,布尔值),位于   System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject,   System.Windows.RoutedEventArgs)   System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
  在   Microsoft.VisualStudio.PlatformUI.Shell.Controls.ReorderTabPanel.OnLayoutUpdated(System.Object,   System.EventArgs)   System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()位于   System.Windows.ContextLayoutManager.UpdateLayout()位于   System.Windows.ContextLayoutManager.UpdateLayoutCallback(System.Object)   在System.Windows.Media.MediaContext + InvokeOnRenderCallback.DoWork()
  在System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
  在   System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object)   在   System.Windows.Media.MediaContext.RenderMessageHandler(System.Object)   在   System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,   System.Object,Int32)   System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,   System.Delegate,System.Object,Int32,System.Delegate)   System.Windows.Threading.DispatcherOperation.InvokeImpl()在   System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)   在   System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,   System.Threading.ContextCallback,System.Object,Boolean)在   System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,   System.Threading.ContextCallback,System.Object,Boolean)在   System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,   System.Threading.ContextCallback,System.Object),位于   MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext,   System.Threading.ContextCallback,System.Object),位于   System.Windows.Threading.DispatcherOperation.Invoke()在   System.Windows.Threading.Dispatcher.ProcessQueue()在   System.Windows.Threading.Dispatcher.WndProcHook(IntPtr,Int32,IntPtr,   IntPtr,布尔值ByRef),位于MS.Win32.HwndWrapper.WndProc(IntPtr,   Int32,IntPtr,IntPtr,Boolean ByRef),位于   MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)在   System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,   System.Object,Int32)   System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,   System.Delegate,System.Object,Int32,System.Delegate)   System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority,   System.TimeSpan,System.Delegate,System.Object,Int32)   MS.Win32.HwndSubclass.SubclassWndProc(IntPtr,Int32,IntPtr,IntPtr)

同一台笔记本电脑,与以前相同的Windows安装,相同的SSMS和VS安装。发生了什么变化:不同的扩展坞(用雷电代替USB3.0),两个外部监视器(相同型号,但标本不同)通过DP菊花链连接,并连接到扩展坞中的单个miniDisplayport输出。

直到我颠倒了菊花链的工作顺序(因此以前的显示数字2现在变为显示数字3,而笔记本电脑本机仍为主显示和数字1),一切都很好。

交换之后,问题再次出现。由于显示器被认为是新设备,因此将其设置为从其原始1920x1200分辨率为1920x1080,并且可以复制而不是扩展。将其全部设置回我想要的位置后,错误再次开始。

1 个答案:

答案 0 :(得分:1)

经过更多调查:找到了该线程:

https://feedback.azure.com/forums/908035-sql-server/suggestions/33619039-crash-when-going-to-pinned-tab

并在其中复制笔尖。在将更多测试问题归结为Displayport之后-罪魁祸首监视器通过USB端口复制器连接到笔记本电脑,该端口可以将显示输出到三个监视器(2xHDMI和1xDP)。当问题监视器的连接从DP更改为HDMI时,问题不再存在。