SQL Server 2008 R2 - .NET Framework未处理的异常

时间:2011-04-21 13:34:29

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

我在新PC上安装了SQL Server 2008 R2。在我从旧PC上存在的SQL Server 2008 R2管理工作室开始导出注册服务器之前,一切正常。当我将其中一个已注册的服务器导入我的新安装时,我得到了错误“密钥无法在指定状态下使用”。

现在每当我尝试在新安装上打开注册服务器时,我都会得到一个带有相同消息的.NET框架Unhandled Exception。注册的服务器区域完全为空。现在无法添加任何已注册的服务器。我尝试重新安装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)

5 个答案:

答案 0 :(得分:15)

听起来像是Windows个人资料中的内容(例如,Windows 7上的用户/ [用户名] / AppData /漫游)。您是否尝试过清除SQL Server条目?

艾伦

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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