SQL Server Management Studio 导入/导出数据在启动时崩溃并显示“数据无效”

Dak*_*aul 2 ssms

SSMS 导入/导出数据向导不再在我的 PC 上打开;它立即崩溃并出现以下错误。我尝试通过上下文菜单项“导入数据...”和“导出数据...”以及文件DTSWizard.exe本身在 SSMS 中启动它C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn.

自从SSMS 18.9.2发布以来,我一直在使用它,从来没有遇到过这个问题,它是今天才开始出现的。我尝试卸载并重新安装 SSMS 18.9.2 但没有成功。有任何想法吗?

===================================

This wizard will close because it encountered the following error: (Microsoft SQL Server)

------------------------------
For help, click: https://go.microsoft.com:80/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=15.0.2000.168&EvtSrc=Microsoft.SqlServer.Management.UI.WizardFrameworkErrorSR&EvtID=UncaughtException&LinkId=20476

===================================

The data is invalid.


------------------------------
Program Location:

   at Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass.get_DBProviderInfos()
   at Microsoft.SqlServer.Dts.DtsWizard.DTSWizard.GetDtsDbProviderInfos(WizardInputs wizardInputs)
   at Microsoft.SqlServer.Dts.DtsWizard.DataSourceCombo.PopulateProviders(Boolean fSources, WizardInputs wizardInputs)
   at Microsoft.SqlServer.Dts.DtsWizard.Step1.OnInitializePage(EventArgs e)
   at Microsoft.SqlServer.Management.UI.WizardPage.RaiseEnterPage()
   at Microsoft.SqlServer.Management.UI.WizardForm.NextPage(WizardPage nextPage)
   at Microsoft.SqlServer.Management.UI.WizardForm.Next_Click(Object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)

更新

刚刚注意到我无法在 SQL Server 代理作业中添加或编辑步骤。当我在“作业属性”对话框中单击“新建”或“编辑”时,我会收到类似的“数据无效”错误:

===================================

The data is invalid.


------------------------------
Program Location:

   at Microsoft.SqlServer.Dts.Runtime.Application.get_LogProviderInfos()
   at Microsoft.DataTransformationServices.DTSExecUI.Controls.LoggingCtrl..ctor(IDTSExecViewManager treePanel)
   at Microsoft.SqlServer.Management.SqlManagerUI.DTSJobSubSystemDefinition.InitializeControls()
   at Microsoft.SqlServer.Management.SqlManagerUI.DTSJobSubSystemDefinition..ctor(CDataContainer dataContainer, IMessageBoxProvider messageProvider)
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepSubSystems.CreateJobStepSubSystemSsis(AgentSubSystem agentSubSystem, CDataContainer dataContainer, JobStepData data, IMessageBoxProvider messageProvider)
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepSubSystems.CreateJobStepSubSystem(AgentSubSystem agentSubSystem, CDataContainer dataContainer, JobStepData data, IMessageBoxProvider messageProvider, IServiceProvider serviceProvider)
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepSubSystems..ctor(CDataContainer dataContainer, JobStepData data, IMessageBoxProvider messageProvider, IServiceProvider serviceProvider)
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.get_SubSystems()
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.FilterStepCombo(DatabaseEngineEdition engineEdition)
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.InitializeStepCombo()
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.InitializeData()
   at Microsoft.SqlServer.Management.SqlManagerUI.JobStepProperties.OnInitialization()
   at Microsoft.SqlServer.Management.SqlMgmt.ViewSwitcherControlsManager.SetView(Int32 index, TreeNode node)
   at Microsoft.SqlServer.Management.SqlMgmt.ViewSwitcherControlsManager.SelectCurrentNode()
   at Microsoft.SqlServer.Management.SqlMgmt.ViewSwitcherControlsManager.InitializeUI(ViewSwitcherTreeView treeView, ISqlControlCollection viewsHolder, Panel rightPane)
   at Microsoft.SqlServer.Management.SqlMgmt.LaunchForm.InitializeForm(XmlDocument doc, IServiceProvider provider, ISqlControlCollection control)
   at Microsoft.SqlServer.Management.SqlMgmt.LaunchForm..ctor(ISqlControlCollection control, IServiceProvider provider)
   at Microsoft.SqlServer.Management.SqlManagerUI.JobSteps.editJobStep_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.RunDialog(Form form)
   at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   at System.Windows.Forms.Form.ShowDialog()
   at Microsoft.SqlServer.Management.SqlMgmt.RunningFormsTable.RunningFormsTableImpl.ThreadStarter.StartThread()

===================================

The data is invalid.


------------------------------
Program Location:

   at Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass.get_LogProviderInfos()
   at Microsoft.SqlServer.Dts.Runtime.Application.get_LogProviderInfos()
Run Code Online (Sandbox Code Playgroud)

Dak*_*aul 5

终于想通了。在此开始前几天,我正在摆弄 Winaero Tweaker,并按照此处的说明从资源管理器的上下文菜单中删除“与 Skype 共享”项目。我撤消了对注册表项的更改,DTSWizard.exe 再次工作。

以下是来自 Winaero 网站的破坏该问题的步骤:

  • 转到以下注册表项:HKEY_CLASSES_ROOT\PackagesCom\ClassIndex{776DBC8D-7347-478C-8D71-791E12EF49D8}。
  • 右键单击左侧的{776DBC8D-7347-478C-8D71-791E12EF49D8}文件夹,然后从上下文菜单中选择重命名。在注册表中重命名密钥命令
  • 指定 -{776DBC8D-7347-478C-8D71-791E12EF49D8} 作为新密钥名称。(只需在文件夹名称中添加减号即可)。

  • 谢谢你!!我永远不会明白这一点 - 我不经常使用导出数据,并且很久以前就禁用了 Skype。对我来说,注册表项已重新添加自身,但我重命名的注册表项仍然带有减号。我删除了它(它们在其他方面是相同的),并且 SQL Server 再次一切正常。 (2认同)
  • 就像@cometfish一样,我必须删除名称前面带有破折号的密钥才能解决问题。不添加它。 (2认同)