J'ai récemment eu un nouveau PC au travail et j'ai dû réinstaller les outils de développement, etc. Le PC fonctionne sous Windows XP (blech). service packs et correctifs. Windows XP lui-même est également à jour (si l’on pouvait dire cela :-)
Un problème récurrent que j'ai remarqué est le dialogue suivant, qui a tendance à apparaître après que la machine a été tourner au ralenti pour un moment:
Je soupçonne que cet incident est dû au fait que .NET Framework a effectué la compilation Ngen des assemblys système en arrière-plan et qu’il se bloque lorsqu’il atteint un assemblage en particulier.
J'ai trouvé une autre mention Pour résoudre ce problème sur les forums MSDN, l’une des solutions de contournement suggérées consiste à configurer la fonctionnalité de prévention de l’exécution des données de Windows XP. "Activer la PED pour les programmes et services Windows essentiels uniquement" . Cependant, c'est déjà le réglage en vigueur sur mon PC.
Comment puis-je diagnostiquer plus loin? Lorsque j'essaie de m'attacher au processus, il est déjà parti.
Existe-t-il d'autres solutions suggérées ou probables?
METTRE À JOUR:
J'ai trouvé plus d'informations sur ngen ici et ici .
J'ai exécuté ce qui suit à une invite de commande: ngen executequeueditems
Cela me permet maintenant de reproduire le problème de manière fiable au lieu d’attendre l’exécution du ngen inactif.
Donc quand ngen.exe
obtenu à l'entrée suivante:
Compiling assembly Microsoft.SqlServer.Management.MultiServerConnection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 (CLR v2.0.50727) ...
WARNING: Cannot hardbind to mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 because dependency does not have a native image (check FusLogVw for reason)
Failed to generate native code for dependent image Microsoft.SqlServer.Management.MultiServerConnection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 because of the following error: The remote procedure call failed. (Exception from HRESULT: 0x800706BE)
... le résultat était la boîte de dialogue d'erreur suivante:
Considérant que, d'autres assemblys qui ont échoué la génération d'image native n'a pas réellement causé crash , juste un message d'erreur.
Donc, l'assemblage spécifique sur lequel il échoue est: Microsoft.SqlServer.Management.MultiServerConnection .
Que puis-je faire d'autre? Je ne me soucie pas particulièrement de savoir si ça peut être générique ou non à ce stade; Je veux simplement arrêter cette boîte de dialogue d'erreur récurrente ennuyante d'en haut. J'ai déjà essayé:
ngen uninstall Microsoft.SqlServer.Management.MultiServerConnection
,
... mais il est écrit "ERROR: l'assembly spécifié n'est pas installé".
Est-il possible de supprimer un assemblage du ngen queue , alors ngen ne va même pas essayer de générer une image native pour cela?