SQL Server Management Studio 17.9 在使用固定选项卡时崩溃
SQL Server Management Studio 17.9 crashing when using pinned tabs
由于我正在做的工作,我需要在我的笔记本电脑上安装最新的 SQL 服务器,SQL Server Management Studio 和 Visual Studio 2017 Dev(所有最新版本可作为今天在 Microsoft 网站上供下载)。
在我安装 VS 2017 之前一切正常(有很多选项 - 总安装量约为 50GB,反映了正在完成的工作)。完成后,当我在选项卡之间切换时 SSMS 崩溃。是的。我在选项卡 A 中打开查询 A,然后在选项卡 B 中打开查询 B(连接到同一服务器),当我单击刚刚加载的查询 B(双击 Windows 资源管理器并使用默认关联 .sql 文件)- boom:没有错误消息,没有警告。 SSMS 显示转轮 5 秒,然后重新启动。
显然它此时无法使用,但是在我对 Windows 进行核攻击并从头开始重新安装之前,是否有人遇到过类似的问题并找到了原因?
已经尝试过 SSMS 修复、VS 修复、SSMS 重装、VS 重装、SSMS 卸载然后重装、SQl 卸载 + SSMS unisntall + VS 卸载(有问题因为 VS 安装程序想要更新,然后无法更新卸载整个 VS,必须手动逐个应用程序),然后按照 Microsoft 建议的顺序重新安装:SQL 服务器、SSMS、VS。再次 - 工作正常,直到 VS 安装完成...
感谢任何帮助。
经过进一步调查:需要固定其中一个选项卡才能发生崩溃。但是当我固定任何标签的那一刻......一切都消失了。所以 SSMS 和 VS 之间可能没有 link,但现在复制了 3 次:打开选项卡,固定,打开另一个选项卡,点击第一个,然后返回第二个并崩溃。
经过一段时间和进一步调查(2018 年 10 月 11 日):
我又遇到了这个问题。但目前还不清楚它是 DisplayPort 还是 Displaylink 到 DP (因为我仍在使用端口复制器,利用 DisplayLink解决方案),这就是原因,因为我的笔记本电脑没有 DP 输出,只有 HDMI。我也无法在不破坏其他人的情况下在其他工作站上复制问题。
DisplayPort 的 link 仍然存在,因此切换到 HDMI 仍然是一个有效的解决方法(如我在下面的回答中所示),但问题绝对是起源于软件,与 Visual Studio 某种程度上来说。或者至少事件查看器中针对此错误显示的内容:
Application: Ssms.exe Framework Version: v4.0.30319 Description: The
process was terminated due to an unhandled exception. Exception Info:
System.ArgumentException at System.Windows.Rect.set_Height(Double)
at
Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.NormalizeTabHeight()
at
Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.ExpandTabStripCore()
at
Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.MeasureTabStrip()
at
Microsoft.VisualStudio.PlatformUI.Shell.Controls.DockPreviewWindow.OnPanelLayoutUpdated(System.Object)
at
Microsoft.VisualStudio.PlatformUI.Shell.Controls.DockPreviewWindow.OnPanelLayoutUpdated(System.Object,
System.Windows.RoutedEventArgs) at
System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object,
System.Windows.RoutedEventArgs) at
System.Windows.EventRoute.InvokeHandlersImpl(System.Object,
System.Windows.RoutedEventArgs, Boolean) at
System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject,
System.Windows.RoutedEventArgs) at
System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
at
Microsoft.VisualStudio.PlatformUI.Shell.Controls.ReorderTabPanel.OnLayoutUpdated(System.Object,
System.EventArgs) at
System.Windows.ContextLayoutManager.fireLayoutUpdateEvent() at
System.Windows.ContextLayoutManager.UpdateLayout() at
System.Windows.ContextLayoutManager.UpdateLayoutCallback(System.Object)
at System.Windows.Media.MediaContext+InvokeOnRenderCallback.DoWork()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at
System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object)
at
System.Windows.Media.MediaContext.RenderMessageHandler(System.Object)
at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,
System.Object, Int32) at
System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,
System.Delegate, System.Object, Int32, System.Delegate) at
System.Windows.Threading.DispatcherOperation.InvokeImpl() at
System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
at
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) at
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) at
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object) at
MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext,
System.Threading.ContextCallback, System.Object) at
System.Windows.Threading.DispatcherOperation.Invoke() at
System.Windows.Threading.Dispatcher.ProcessQueue() at
System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr,
IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr,
Int32, IntPtr, IntPtr, Boolean ByRef) at
MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,
System.Object, Int32) at
System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,
System.Delegate, System.Object, Int32, System.Delegate) at
System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority,
System.TimeSpan, System.Delegate, System.Object, Int32) at
MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
相同的笔记本电脑,与以前相同的 Windows 安装,相同的 SSMS 和 VS 安装。变化:不同的扩展坞(thunderbolt 而不是 USB3.0),两个外部显示器(相同型号,但不同的标本)通过 DP 菊花链连接,连接到扩展坞中的单个 miniDisplayport 输出。
直到我颠倒了菊花链的工作顺序(所以之前显示编号 2 现在显示编号 3,笔记本电脑本机保留主显示器和编号 1)一切都很好。
交换后问题又来了。由于监视器被识别为新设备,因此将它们设置为 1920x1080 分辨率,从其原始的 1920x1200 和复制而不是扩展。当把它全部设置回我想要的时候,错误又开始了。
经过更多调查:发现此线程:
并在那里复制了技巧。在将更多测试问题缩小到 Displayport 之后 - 罪魁祸首显示器通过 USB 端口复制器连接到笔记本电脑,它可以将显示输出到三个显示器(2xHDMI 和 1xDP)。当有问题的显示器的连接从 DP 更改为 HDMI 时,问题就消失了。
由于我正在做的工作,我需要在我的笔记本电脑上安装最新的 SQL 服务器,SQL Server Management Studio 和 Visual Studio 2017 Dev(所有最新版本可作为今天在 Microsoft 网站上供下载)。
在我安装 VS 2017 之前一切正常(有很多选项 - 总安装量约为 50GB,反映了正在完成的工作)。完成后,当我在选项卡之间切换时 SSMS 崩溃。是的。我在选项卡 A 中打开查询 A,然后在选项卡 B 中打开查询 B(连接到同一服务器),当我单击刚刚加载的查询 B(双击 Windows 资源管理器并使用默认关联 .sql 文件)- boom:没有错误消息,没有警告。 SSMS 显示转轮 5 秒,然后重新启动。
显然它此时无法使用,但是在我对 Windows 进行核攻击并从头开始重新安装之前,是否有人遇到过类似的问题并找到了原因?
已经尝试过 SSMS 修复、VS 修复、SSMS 重装、VS 重装、SSMS 卸载然后重装、SQl 卸载 + SSMS unisntall + VS 卸载(有问题因为 VS 安装程序想要更新,然后无法更新卸载整个 VS,必须手动逐个应用程序),然后按照 Microsoft 建议的顺序重新安装:SQL 服务器、SSMS、VS。再次 - 工作正常,直到 VS 安装完成...
感谢任何帮助。
经过进一步调查:需要固定其中一个选项卡才能发生崩溃。但是当我固定任何标签的那一刻......一切都消失了。所以 SSMS 和 VS 之间可能没有 link,但现在复制了 3 次:打开选项卡,固定,打开另一个选项卡,点击第一个,然后返回第二个并崩溃。
经过一段时间和进一步调查(2018 年 10 月 11 日):
我又遇到了这个问题。但目前还不清楚它是 DisplayPort 还是 Displaylink 到 DP (因为我仍在使用端口复制器,利用 DisplayLink解决方案),这就是原因,因为我的笔记本电脑没有 DP 输出,只有 HDMI。我也无法在不破坏其他人的情况下在其他工作站上复制问题。
DisplayPort 的 link 仍然存在,因此切换到 HDMI 仍然是一个有效的解决方法(如我在下面的回答中所示),但问题绝对是起源于软件,与 Visual Studio 某种程度上来说。或者至少事件查看器中针对此错误显示的内容:
Application: Ssms.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ArgumentException at System.Windows.Rect.set_Height(Double) at Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.NormalizeTabHeight() at Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.ExpandTabStripCore() at Microsoft.VisualStudio.PlatformUI.Shell.DraggedTabInfo.MeasureTabStrip() at Microsoft.VisualStudio.PlatformUI.Shell.Controls.DockPreviewWindow.OnPanelLayoutUpdated(System.Object) at Microsoft.VisualStudio.PlatformUI.Shell.Controls.DockPreviewWindow.OnPanelLayoutUpdated(System.Object, System.Windows.RoutedEventArgs) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) at System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
at Microsoft.VisualStudio.PlatformUI.Shell.Controls.ReorderTabPanel.OnLayoutUpdated(System.Object, System.EventArgs) at System.Windows.ContextLayoutManager.fireLayoutUpdateEvent() at System.Windows.ContextLayoutManager.UpdateLayout() at System.Windows.ContextLayoutManager.UpdateLayoutCallback(System.Object) at System.Windows.Media.MediaContext+InvokeOnRenderCallback.DoWork()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object) at System.Windows.Media.MediaContext.RenderMessageHandler(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
相同的笔记本电脑,与以前相同的 Windows 安装,相同的 SSMS 和 VS 安装。变化:不同的扩展坞(thunderbolt 而不是 USB3.0),两个外部显示器(相同型号,但不同的标本)通过 DP 菊花链连接,连接到扩展坞中的单个 miniDisplayport 输出。
直到我颠倒了菊花链的工作顺序(所以之前显示编号 2 现在显示编号 3,笔记本电脑本机保留主显示器和编号 1)一切都很好。
交换后问题又来了。由于监视器被识别为新设备,因此将它们设置为 1920x1080 分辨率,从其原始的 1920x1200 和复制而不是扩展。当把它全部设置回我想要的时候,错误又开始了。
经过更多调查:发现此线程:
并在那里复制了技巧。在将更多测试问题缩小到 Displayport 之后 - 罪魁祸首显示器通过 USB 端口复制器连接到笔记本电脑,它可以将显示输出到三个显示器(2xHDMI 和 1xDP)。当有问题的显示器的连接从 DP 更改为 HDMI 时,问题就消失了。