9
votes

SQL Server 2008 R2 - .NET Framework Indangled Exception

J'ai installé SQL Server 2008 R2 sur un nouveau PC. Tout fonctionnait bien jusqu'à ce que je commence à exporter des serveurs enregistrés du SQL Server 2008 R2 Management Studio existant sur mon ancien PC. Lorsque j'ai importé l'un des serveurs enregistrés à ma nouvelle installation, j'ai été obtenu et error " la clé non valide pour une utilisation dans l'état spécifié em>".

Maintenant, chaque fois que j'essaie d'ouvrir des serveurs enregistrés sur la nouvelle installation I Obtenez une exception non confondue .NET Framework avec le même message. La zone de serveur enregistré est complètement vide. Il n'y a aucun moyen d'ajouter des serveurs enregistrés maintenant. J'ai essayé de réinstaller SQL mais que l'erreur reste. Il est évidemment lié au processus d'importation. Peut-être que quelque chose a été corrompu. Est-ce que quelqu'un sait comment le réparer? P>

Edit: Détails de la boîte de dialogue Exception forte> p>

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)


1 commentaires

Stackoverflow.com/a/6476025/2990378 - Cette solution a fonctionné pour moi


5 Réponses :


15
votes

sonne comme si c'est quelque chose dans votre profil Windows (E.g. Utilisateurs / [Nom d'utilisateur] / AppData / Itinérance sous Windows 7). Avez-vous essayé de dégager les entrées SQL Server de cela?

alan


4 commentaires

Merci Alan. Tache sur. Le fichier incriminé était regsrvr.xml. Je l'ai renommé et redémarré SQL Server. Une erreur est partie. Je continuerai à ajouter mes serveurs enregistrés manuellement !!


Travaillé pour moi aussi, mais le mien était sous \ users \ [nom d'utilisateur] \ appdata \ Microsoft \ Microsoft SQL Server . En outre, en raison de la manière dont le domaine que je suis sur est configuré, il n'était pas sur ma machine locale mais éteint sur un lecteur réseau.


Merci Alan, cela a travaillé pour moi aussi après avoir effacé le regsrvr.xml


supprimé le fichier regsrvr.xml mais maintenant après la connexion, je reçois une erreur nulle et aucune base de données affichée dans les bases de données



2
votes

J'avais une situation similaire. Exactement les mêmes observations - mais cela n'avait rien à voir avec l'importation. J'avais fait une réinstallation complète de Windows 7 et SQL (Edition Developer). J'avais récupéré mon profil d'avant la reconstruction de sorte qu'il était hors de synchronisation avec l'installation. J'ai supprimé c: \ users \ john \ appdata \ itinérance \ Microsoft \ Microsoft SQL Server et le problème est parti.


0 commentaires

5
votes

Le fichier regsrvr.xml était le problème pour moi aussi. Mais plutôt que de supprimer tout le fichier, je viens de la modifier pour supprimer les chaînes de mot de passe cryptées. Après cela, le studio de gestion a ouvert bien avec tous les serveurs importés présents.


2 commentaires

Brillant! C'est la solution.


De même, j'ai fait une autre exportation des enregistrements du SQL Server Management Studio, mais la deuxième fois que j'ai spécifiée "n'incluent pas les noms d'utilisateur et les mots de passe dans le fichier d'exportation". Ensuite, cela a importé une amende dans ma nouvelle version au lieu de donner une erreur. Il semble donc que quelque chose ne va pas mal avec y compris les mots de passe dans le fichier d'exportation SSMS.



0
votes

Une dernière chose à vérifier - vous ne pouvez pas importer des définitions exportées en versions antérieures de SQL Management Studio. Vous obtiendrez la même touche non valide pour l'utilisation d'une erreur , par exemple, d'exportation de MSSMS2012 et d'essayer d'importer dans MSSMS2008R2.


0 commentaires

0
votes

Une dernière chose à vérifier - pour moi, c'était parce qu'il n'y avait pas assez d'espace disque dans le lecteur de SQL Server. L'espace de compensation résolue tout.


0 commentaires