Après le centre 2012 ConfigMgr SQL Site de système de base de données est déplacée, vous ne pouvez pas créer un package de mise à jour logicielle ou une application

S’applique à : Microsoft System Center 2012 Configuration Manager

Symptômes


Une fois que vous déplacez le système Center 2012 Configuration Manager SQL Site de base de données vers un lecteur différent, et puis vous essayez de créer un groupe de la mise à jour logicielle, le package de mise à jour logicielle ou d’application, l’opération échoue et les entrées de journal semblables aux suivants sont consignées dans le fichier SMSProv.log :

*** *** Unknown SQL Error! SMS Provider 14-03-2012 07:56:47 2016 (0x07E0) 
*~*~*** Unknown SQL Error! ThreadID : 2016 , DbError: 50000 , Sev: 16~*~* SMS Provider 14-03-2012 07:56:47 2016 (0x07E0)
*** [24000][0][Microsoft][SQL Server Native Client 10.0]Invalid cursor state SMS Provider 14-03-2012 07:56:48 2016 (0x07E0)
*~*~[24000][0][Microsoft][SQL Server Native Client 10.0]Invalid cursor state *** Unknown SQL Error! ThreadID : 2016 ,
DbError: 0 , Sev: 0~*~* SMS Provider 14-03-2012 07:56:48 2016 (0x07E0)
SQL Server Profiler fournit les informations supplémentaires suivantes :

An error occurred in the Microsoft .NET Framework while trying to load assembly id 65539. The server may be
running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE.
Run the query again, or check documentation to see how to solve the assembly trust issues. For more
information about this error:

System.IO.FileLoadException: Could not load file or assembly 'cryptoutility, Version=5.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. An error relating to security occurred.
(Exception from HRESULT: 0x8013150A) System.IO.FileLoadException:
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity,
Assembly locationHint,
StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity,
StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity,
StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)

Cause


Ce problème peut se produire si la base de données de Site de SQL MDF et LDF sont déplacés vers un autre lecteur. Par exemple, ce problème peut se produire si la base de données de Site Configuration Manager est créée sur C:\Program files\MSSQL server\data, et les fichiers MDF et LDF sont déplacés vers D:\CM2012DBpour économiser de l’espace.

Remarque Il s’agit d’une opération prise en charge de SQL Server. Pour plus d’informations, consultez l’article suivant de la Base de connaissances Microsoft :

Ce problème se produit car la propriété Digne de confiance SQL de la base de données du Site de SQL qui est définie à ON par défaut est réinitialisée sur OFF lorsque vous détachez puis rattachez la base de données. Lorsque la base de données n’est pas configuré pour la propriété est définie sur ON, < ConfigMgr_Install > \bin\x64\CryptoUtility.dll ne parvient pas à charger dans SQL Server, et vous recevez le « état de curseur non valide ' » message d’erreur qui est mentionné dans la section « Symptômes ».

Résolution


Pour résoudre ce problème, procédez comme suit :

  1. Réinitialiser manuellement la propriété on en exécutant la commande suivante sur votre base de données CM :

    ALTER DATABASE <ConfigMgr DB>
    SET TRUSTWORTHY ON
  2. Assurez-vous que la base de données qui a été déplacé est détenu par le compte SA.
  3. Assurez-vous que la valeur de niveau d’isolement est définie à READ_COMMITTED_SNAPSHOT. Pour vérifier cette valeur, exécutez la commande suivante :

    DBCC USEROPTIONS 
  4. Si la valeur de niveau d’isolement autre que Lecture de capture instantanée validée, exécutez suivant les commandes dans l’ordre indiqué :


    ALTER DATABASE <ConfigMgr DB>
    SET ALLOW_SNAPSHOT_ISOLATION ON
    ALTER DATABASE <ConfigMgr DB>
    SET READ_COMMITTED_SNAPSHOT ON
Remarque Il se peut que vous deviez modifier la base de données SQL Server en mode mono-utilisateur avant d’exécuter les commandes à l’étape 4. Pour plus d’informations sur la façon de détacher et d’attacher une base de données dans SQL Server, consultez la rubrique de TechNet suivante :