SSMS 18.8在重新对接卡舌时崩溃
当我在SQL Server Management Studio中移除选项卡并稍后尝试重新停靠它时,SSMS崩溃。这种情况每次都会发生,我可以随意重现问题。我所要做的就是移除一个选项卡(比方说,为了并排查看不同选项卡中的两个SQL查询),然后尝试重新停靠它,SSMS就会崩溃。查看事件查看器,每次发生崩溃时,我都会发现两条连续的错误消息,第一条消息的Source设置为";.NET Runtime";,第二条消息的Source设置为事件查看器中的";Application Error&Quot;:
邮件#1:
应用程序:Ssms.exe框架版本:v4.0.30319说明: 由于未处理的异常,进程已终止。异常信息: System.NullReferenceException位于 System.Windows.Interop.HwndMouseInputProvider.HasCustomChrome(System.Windows.Interop.HwndSource, 按参照直角)位于 System.Windows.Interop.HwndMouseInputProvider.GetEffectiveClientRect(IntPtr) 在… System.Windows.Interop.HwndMouseInputProvider.PossiblyDeactivate(IntPtr, 布尔型)at System.Windows.Interop.HwndMouseInputProvider.Dispose()at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage、IntPtr、IntPtr、Boolean ByRef)位于 System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr,Int32, IntPtr、IntPtr、Boolean 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)
邮件#2:
出错应用程序名称:Ssms.exe,版本:2019.150.18369.0,时间 戳记:0x5fd317a3故障模块名称:PresentationCore.ni.dll, 版本:4.8.4320.0,时间戳:0x5fc81198异常代码:0xc0000005 故障偏移量:0x0076c044故障进程ID:0x166c故障 应用程序启动时间:0x01d6fc1a384c50f7出现故障的应用程序路径: C:程序文件(X86)Microsoft SQL Server Management Studio 18Common7IDESsms.exe故障模块路径: C:WindowsassemblyNativeImages_v4.0.30319_32PresentationCore627e2c47709994c2c1f8fd2e1228d567PresentationCore.ni.dll 报告ID:1b2fa46b-b60c-4517-bd91-1d4de7324b26故障包已满 名称:故障包-相对应用程序ID:
是否有其他人遇到过此问题并找到了解决方法或解决方法?
解决方案
修复结果为:
首先,关闭所有SSMS窗口。 接下来,找到您的SSMS可执行文件。我的位置是:C:程序文件(X86)Microsoft SQL Server Management Studio 18Common7IDE
(如果找不到,请尝试右键单击用于打开SSMS的快捷方式,然后转到属性-->;打开文件位置)
找到此文件后,您还会在同一文件夹中找到一个名为Ssms.exe.config的文件-在管理员模式下打开记事本并编辑此Ssms.exe.config文件。
在Ssms.exe.config文件中,找到名为<AppContextSwitchOverrides>
的XML标记,并准确追加(而不是替换)以下内容:
;Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true; Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true
然后,使用您刚才所做的更改保存该文件。
进行此更改后,当您手动将窗口重新停靠到选项卡栏中时,SSMS应该不会再崩溃或挂起。
相关文章