CORRECTIF : Lorsque vous exécutez une application .NET Framework 2.0, une exception System.AccessViolationException, ou un verrou mortes cas sur deux threads dans un domaine d'application

Traductions disponibles Traductions disponibles
Numéro d'article: 975954 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Vous rencontrez l'un des problèmes suivants lorsque vous exécutez une application dans Microsoft .NET Framework 2.0.

Problème 1

Soit une altération des données se produit, ou vous recevez une exception System.AccessViolationException. Si vous recevez l'exception, vous recevez également message d'erreur suivantes :
Tenté de lire ou d'écriture de mémoire protégée. Ceci indique souvent qu'autre mémoire est endommagé.
Ce problème se produit lorsque toutes les conditions suivantes sont remplies :
  • Un assembly est partagé dans plusieurs domaines.
  • Une méthode de génération de code léger (LCG) est joint à un type qui est à l'intérieur de l'assembly partagé.
  • La méthode LCG est recueillie dans plusieurs domaines. Ensuite, le code de l'assembly est compilé par un compilateur juste-dans-temps (JIT).
  • Le code JIT et la méthode LCG effectuent un appel de l'interface.

Problème 2

Lorsque vous exécutez l'application sur un ordinateur sur lequel l'utilisation de la mémoire haute, l'application cesse de répondre. Si vous déboguez le problème à l'aide de l'outil WinDbg.exe, vous constatez qu'un verrou morts se produit sur deux threads dans un domaine d'application.

Cause

Cause du problème 1

La corruption de données se produit car un common language runtime (CLR) de stub fonction n'est plus dans la mémoire allouée après qu'un domaine d'application est recyclé. La fonction a été générée dynamiquement.

Cause du problème 2

L'application cesse de répondre car un thread obtient un verrou pour exécuter la fonction m_prCachedMethodPermissionsLock. Ensuite, le thread est suspendu à participer aux opérations garbage collection et ne libère pas le verrou. Toutefois, un autre thread est en mode coopératif dans le même domaine d'application continue d'attendre le verrou.

Résolution

Information des correctifs

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif est conçu uniquement pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant le problème décrit dans cet article. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif. Pour télécharger ce correctif à partir de la galerie de code MSDN (Microsoft Developer Network), reportez-vous au site Web de Microsoft à l'adresse suivante :
http://code.msdn.microsoft.com/KB975954
Remarque MSDN Code Gallery affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue répertoriée, c'est parce que la page de ressource de Code Gallery n'est pas disponible pour cette langue.

Vous pouvez également télécharger ce correctif cumulatif à partir du site Microsoft Web à l'adresse suivante :
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=26146

Conditions préalables

Vous devez avoir .NET Framework 2.0 Service Pack 2 (SP2) ou le .NET Framework 3.5 Service Pack (SP1) pour appliquer ce correctif.

La nécessité de redémarrer

Il est inutile de redémarrer l'ordinateur après avoir appliqué ce correctif si aucune instance du .NET Framework n'est utilisé.

Informations sur le remplacement du correctif

Ce correctif ne remplace pas les autres correctifs.

Informations de fichier

La version anglaise de ce correctif possède les attributs de fichier (ou version ultérieure fichier) répertoriés dans le tableau suivant. La date et heures de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est converti en heure locale. Pour connaître le décalage entre l'UTC et l'heure locale, utilisez l'onglet fuseau horaire de l'élément de date et heure dans le panneau de configuration.
Pour toutes les x 86 de versions de Windows Vista SP2 et Windows Server 2008 SP2
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscorlib.dll2.0.50727.44084,550,65621-Oct-200907 : 24
Mscordacwks.dll2.0.50727.4408989,00021-Oct-200907 : 24
Mscorwks.dll2.0.50727.44085,818,68821-Oct-200907 : 24
SOS.dll2.0.50727.4408388,92021-Oct-200907 : 24
Pour toutes les versions 64 de Windows Vista SP2 et Windows Server 2008 SP2 x
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscorlib.dll2.0.50727.44084,567,04021-Oct-200907 : 24
Mscordacwks.dll2.0.50727.44081,758,53621-Oct-200907 : 24
Mscorwks.dll2.0.50727.440810,061,12021-Oct-200907 : 24
SOS.dll2.0.50727.4408485,17621-Oct-200907 : 24
Pour toutes les versions Itanium de Windows Server 2008 Service Pack 2 prises en charge
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscorlib.dll2.0.50727.44084,009,98421-Oct-200907 : 26
Mscordacwks.dll2.0.50727.44083,085,12821-Oct-200907 : 26
Mscorwks.dll2.0.50727.440820,173,12021-Oct-200907 : 26
SOS.dll2.0.50727.4408872,76021-Oct-200907 : 27
Pour toutes les x 86 pour les versions de Windows 7.0
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscorlib.dll2.0.50727.49344,550,65603-Nov-200923 : 27
Mscordacwks.dll2.0.50727.4934995,16003-Nov-200923 : 27
Mscorwks.dll2.0.50727.49345,816,65603-Nov-200923 : 27
SOS.dll2.0.50727.4934388,93603-Nov-200923 : 28
Pour toutes les versions 64 de Windows 7.0 et Windows Server 2008 R2 x
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscorlib.dll2.0.50727.49344,567,04003-Nov-200923 : 33
Mscordacwks.dll2.0.50727.49341,764,16803-Nov-200923 : 33
Mscorwks.dll2.0.50727.493410,058,56003-Nov-200923 : 33
SOS.dll2.0.50727.4934485,19203-Nov-200923 : 34
Pour toutes les prises en charge les versions Itanium de Windows Server 2008 R2
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscorlib.dll2.0.50727.49344,009,98403-Nov-200923 : 32
Mscordacwks.dll2.0.50727.49343,085,64003-Nov-200923 : 32
Mscorwks.dll2.0.50727.493420,164,94403-Nov-200923 : 32
SOS.dll2.0.50727.4934872,76003-Nov-200923 : 32
Pour toutes les x 86 les versions de Windows XP, Windows Server 2000 et de Windows Server 2003
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille de fichierDateHeurePlate-forme
Mscordacwks.dll2.0.50727.4408989,00030 Sep 200905 : 12x 86
Mscorlib.dll2.0.50727.44084,550,65630 Sep 200905 : 12x 86
Mscorwks.dll2.0.50727.44085,818,68830 Sep 200905 : 12x 86
SOS.dll2.0.50727.4408388,92030 Sep 200905 : 12x 86

Pour toutes les versions 64 de Windows XP, Windows Server 2000 et de Windows Server 2003 x
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille de fichierDateHeurePlate-forme
Mscordacwks.dll2.0.50727.44081,758,53629-Sep-200923 : 57x 64
Mscorlib.dll2.0.50727.44084,567,04029-Sep-200923 : 51x 64
Mscorwks.dll2.0.50727.440810,061,12029-Sep-200923 : 55x 64
SOS.dll2.0.50727.4408485,17629-Sep-200923 : 52x 64

Pour toutes les versions Itanium de Windows XP, Windows Server 2000 et de Windows Server 2003 prises en charge
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille de fichierDateHeurePlate-forme
Mscordacwks.dll2.0.50727.44083,085,12830 Sep 200901 : 05IA-64
Mscorlib.dll2.0.50727.44084,009,98430 Sep 200901 : 03IA-64
Mscorwks.dll2.0.50727.440820,173,12030 Sep 200900 : 58IA-64
SOS.dll2.0.50727.4408872,76030 Sep 200901 : 02IA-64

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "S'applique à".

Propriétés

Numéro d'article: 975954 - Dernière mise à jour: dimanche 14 février 2010 - Version: 2.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 2.0
Mots-clés : 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbhotfixserver KB975954 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 975954
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com