我在新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)
答案 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的驱动器中没有足够的磁盘空间。清理空间解决了所有问题。