首页 > 解决方案 > 重新停靠选项卡时 SSMS 18.8 崩溃

问题描述

当我在 SQL Server Management Studio 中取消停靠选项卡并稍后尝试重新停靠时,SSMS 崩溃。每次都会发生这种情况,我可以随意重现问题。我所要做的就是取消停靠一个选项卡(比如说,为了并排查看不同选项卡中的两个 SQL 查询),然后尝试重新停靠它,SSMS 将崩溃。查看事件查看器,每次发生崩溃时,我都会发现两条连续的错误消息,第一条的源设置为“.NET 运行时”,第二条的源在事件查看器中设置为“应用程序错误”:

消息 #1:

应用程序:Ssms.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息: System.Windows.Interop.HwndMouseInputProvider.HasCustomChrome(System.Windows.Interop.HwndSource, RECT ByRef) 的 System.NullReferenceException 在 System.Windows.Interop.HwndMouseInputProvider.GetEffectiveClientRect(IntPtr) 在 System.Windows.Interop.HwndMouseInputProvider。 System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef) 在 System.Windows.Windows.Interop.HwndMouseInputProvider.Dispose() .Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 在 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 在 MS.Win32.HwndSubclass。

消息 #2:

错误应用程序名称:Ssms.exe,版本:2019.150.18369.0,时间戳:0x5fd317a3 错误模块名称:PresentationCore.ni.dll,版本:4.8.4320.0,时间戳:0x5fc81198 异常代码:0xc0000005 错误偏移:0x0076c044 错误进程ID: 0x166c 错误应用程序启动时间:0x01d6fc1a384c50f7 错误应用程序路径:C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe 错误模块路径:C:\Windows\assembly\NativeImages_v4.0.30319_32\ PresentationCore\627e2c47709994c2c1f8fd2e1228d567\PresentationCore.ni.dll 报告 ID:1b2fa46b-b60c-4517-bd91-1d4de7324b26 错误包全名:错误包相关应用程序 ID:

有没有其他人遇到过这个问题并找到了解决方法或解决方法?

标签: sql-serverssmsssms-18

解决方案


“修复”原来是这样的:

首先,关闭所有 SSMS 窗口。接下来,找到您的 SSMS 可执行文件。我的在这个位置:

C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE

(如果找不到,请尝试右键单击用于打开 SSMS 的快捷方式,然后转到“属性”->“打开文件位置”)

找到此文件后,您还将在同一文件夹中找到一个名为Ssms.exe.config的文件 - 在管理员模式下打开记事本并编辑此Ssms.exe.config文件。

Ssms.exe.config文件中,找到一个名为 的 XML 标记<AppContextSwitchOverrides>,并准确追加(而不是替换)以下内容:

;Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true; Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true

然后,使用您刚刚所做的更改保存文件。

进行此更改后,当您手动将窗口重新停靠到选项卡栏时,SSMS 不应再崩溃或挂起。


推荐阅读