【问题标题】:SQL Server 2008 R2 - .NET Framework unhandled exceptionSQL Server 2008 R2 - .NET Framework 未处理的异常
【发布时间】:2011-04-21 13:34:28
【问题描述】:

我在新 PC 上安装了 SQL Server 2008 R2。一切正常,直到我开始从旧 PC 上的 SQL Server 2008 R2 管理工作室导出注册服务器。当我将其中一个注册服务器导入到我的新安装时,我得到了错误“Key not valid for use in specified state”。

现在,每次我尝试在新安装上打开已注册的服务器时,都会收到带有相同消息的 .NET 框架未处理异常。注册的服务器区域完全是空的。现在无法添加任何已注册的服务器。我已尝试重新安装 SQL,但错误仍然存​​在。这显然与导入过程有关。也许有些东西被破坏了。有人知道怎么解决吗?

编辑:异常对话框中的详细信息

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Security.Cryptography.CryptographicException: Key not valid for use in specified state.

   at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.ProtectData(String input, Boolean encrypt)
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.get_SecureConnectionString()
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.get_ConnectionString()
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServer.get_ServerName()
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.AddRegisteredServerNode(RegisteredServer regSrv, TreeNodeCollection nodes)
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.AddServerGroupToNodeCollection(ServerGroup group, TreeNodeCollection nodes, Boolean createRecursively)
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.AddServerGroupToNodeCollection(ServerGroup group, TreeNodeCollection nodes, Boolean createRecursively)
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerTree.Initialize(ServerGroup localServerGroup, ServerType serverType, IServerType connDlgServerType, AddCentralManagementServerDelegate onAddCentralManagementServer, AddNewCentralManagementServerDelegate onAddNewCentralManagementServer, DeleteCentralManagementServerDelegate onDeleteCentralManagementServer, GetServiceProviderDelegate onGetService)
   at Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerControl.RegisteredServerControl_Load(Object sender, EventArgs e)
   at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
   at System.Windows.Forms.UserControl.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.UserControl.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.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

【问题讨论】:

标签: .net sql-server sql-server-2008 sql-server-2008-r2


【解决方案1】:

听起来像是您的 Windows 配置文件中的某些内容(例如 Windows 7 上的用户/[用户名]/AppData/Roaming)。您是否尝试过从中清除 SQL Server 条目?

艾伦

【讨论】:

  • 谢谢艾伦。发现。有问题的文件是 RegSrvr.xml。我重命名它并重新启动 SQL Server。错误消失了。我会继续手动添加我注册的服务器!!
  • 也为我工作,但我的在\Users\[Username]\AppData\Microsoft\Microsoft SQL Server 之下。此外,由于我所在域的配置方式,它不在我的本地计算机上,而是在网络驱动器上关闭。
  • 谢谢 Alan,在清除 RegSrvr.xml 后这对我也有用
  • 删除了文件 RegSrvr.xml 但现在登录后我得到一个空错误并且数据库下没有显示数据库
【解决方案2】:

RegSrvr.xml 文件也是我的问题。但不是删除整个文件,我只是编辑它以删除加密的密码字符串。之后,Management Studio 可以正常打开,所有导入的服务器都存在。

【讨论】:

  • 太棒了!这就是解决方案。
  • 同样,我从 Sql Server Management Studio 中再次导出了注册信息,但第二次我指定了“不要在导出文件中包含用户名和密码”。然后将它很好地导入我的新版本而不是给出错误。因此,在 SSMS 导出文件中包含密码似乎出了点问题。
【解决方案3】:

我也有类似的情况。完全相同的观察结果 - 但它与导入无关。我已经完全重新安装了 Windows 7 和 SQL(开发人员版)。我已经从重建之前恢复了我的配置文件,因此它与安装不同步。我删除了 C:\Users\John\AppData\Roaming\Microsoft\Microsoft SQL Server,问题就消失了。

【讨论】:

    【解决方案4】:

    还有一点需要检查 - 您无法将导出的定义导入 SQL Management Studio 的早期版本。您将收到相同的 Key not valid for use 错误,例如,从 MSSMS2012 导出并尝试在 MSSMS2008R2 中导入。

    【讨论】:

      【解决方案5】:

      还有一件事要检查 - 对我来说,这是因为 SQL Server 的驱动器中没有足够的磁盘空间。清理空间解决了一切。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-11
        • 2015-11-14
        • 2011-09-17
        相关资源
        最近更新 更多