简体   繁体   English

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

[英]SQL Server 2008 R2 - .NET Framework unhandled exception

I have installed SQL Server 2008 R2 on a new PC. 我在新PC上安装了SQL Server 2008 R2。 Everything was working fine until I started exporting registered servers from the SQL Server 2008 R2 management studio which exist on my old PC. 在我从旧PC上存在的SQL Server 2008 R2管理工作室开始导出注册服务器之前,一切正常。 When I imported one of the registered servers to my new installation I got and error " Key not valid for use in specified state ". 当我将其中一个已注册的服务器导入我的新安装时,我得到了错误“ 密钥无法在指定状态下使用 ”。

Now everytime I try to open registered servers on the new installation I get a .NET framework Unhandled Exception with the same message. 现在,每当我尝试在新安装上打开注册服务器时,我都会得到一个带有相同消息的.NET框架Unhandled Exception。 The registered server area is completely empty. 注册的服务器区域完全为空。 There is no way of adding any registered servers now. 现在无法添加任何已注册的服务器。 I have tried reinstalling SQL but the error remains. 我尝试重新安装SQL但错误仍然存​​在。 It is obviously related to the import process. 这显然与进口过程有关。 Maybe something got corrupted. 也许有些东西被腐蚀了。 Does anyone know how to fix it? 有谁知道如何修理它?

Edit:Details from exception dialog 编辑:异常对话框中的详细信息

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)

Sounds like it is something in your windows profile (eg Users/[Username]/AppData/Roaming on Windows 7). 听起来像是Windows配置文件中的内容(例如,Windows 7上的用户/ [用户名] / AppData /漫游)。 Have you tried clearing the SQL Server entries from that? 您是否尝试过清除SQL Server条目?

Alan 艾伦

The RegSrvr.xml file was the problem for me too. RegSrvr.xml文件也是我的问题。 But rather than delete the whole file, I just edited it to delete out the encrypted password strings. 但是我没有删除整个文件,而是编辑它以删除加密的密码字符串。 After that, Management Studio opened fine with all the imported servers present. 之后,Management Studio在所有导入的服务器都能正常运行时打开。

I had avery similar situation. 我有类似的情况。 Exact same observations - but it had nothing to do with importing. 完全相同的观察 - 但它与导入无关。 I had done a complete reinstall of Windows 7, and SQL (Developer edition). 我完成了Windows 7和SQL(开发人员版)的重新安装。 I had recovered my profile from before the rebuild so it was out of sync with the install. 我在重建之前恢复了我的个人资料,因此它与安装不同步。 I deleted C:\\Users\\John\\AppData\\Roaming\\Microsoft\\Microsoft SQL Server and the problem went away. 我删除了C:\\ Users \\ John \\ AppData \\ Roaming \\ Microsoft \\ Microsoft SQL Server ,问题就消失了。

One more thing to check - you can't import exported definitions into earlier versions of SQL Management Studio. 还有一件事要检查 - 您无法将导出的定义导入到早期版本的SQL Management Studio中。 You'll get the same Key not valid for use error, for example, exporting from MSSMS2012 and trying to import in MSSMS2008R2. 您将获得相同的Key not valid for use错误Key not valid for use ,例如,从MSSMS2012导出并尝试在MSSMS2008R2中导入。

One more thing to check - for me it was because there was no enough disk space in the drive of SQL Server. 还有一件事需要检查 - 对我而言是因为SQL Server的驱动器中没有足够的磁盘空间。 Clearing space resolved everything. 清理空间解决了一切。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM