14

当我在 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:

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

4

5 回答 5

14

“修复”原来是这样的:

首先,关闭所有 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 不应再崩溃或挂起。

于 2021-02-18T18:52:32.350 回答
2

尝试将此行添加到<runtime>您启动的 *****.exe.config-File 中的 - 部分。

<AppContextSwitchOverrides value="Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true; Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true" />

我在使用 Visual Studio 时遇到了同样的问题,它有帮助: Visual Studio 2015 Isolated Shell application crashing when docking Tool window after update to MS KB4601050

这是微软声明: https: //support.microsoft.com/de-de/topic/kumulatives-update-vom-9-februar-2021-f%C3%BCr-net-framework-3-5- und-4-8-f%C3%BCr-windows-10-version-1809-und-windows-server-version-2019-kb4601055-38aea913-ccd7-bc76-db60-9521318f97cb

于 2021-02-17T19:51:47.093 回答
0

作为一种解决方法,您可以使用ALT + 减号 (-)快捷方式并创建一个新的水平(停靠在底部)或垂直选项卡组(停靠在右侧)。

您可以通过右键单击查询选项卡来执行相同操作。

于 2021-02-17T08:22:45.463 回答
0

对我来说,卸载 KB4601050 win10 更新解决了问题。

于 2021-02-12T10:02:28.987 回答
0

这已在 2021 年 4 月 15 日发布的 SSMS 18.9 中得到修复。不再需要摆弄配置文件。

一般 SSMS 修复了在重新停靠选项卡时导致 SSMS 崩溃的崩溃(在 Visual Studio Shell 中)。请参阅SQL Server 用户反馈

18.9 发行说明

于 2021-05-17T15:26:15.070 回答