Nous obtenons un:
.NET Runtime version 2.0.50727.5448 - Échec de la co-création du profileur
message dans l'observateur d'événements sur notre serveur Web, avec un accompagnement:
.NET Runtime version 4.0.30319.239 - Le chargement du profileur a échoué au cours de CoCreateInstance. Identificateur de fichier CLSID: '{d37a1b78-6dc5-46fc-bc31-f7c4d5a11c9c}'. HRESULT: 0x8007007e. ID de processus (décimal): 224. ID de message: [0x2504].
Le fait est que nous n'essayons pas d'utiliser un profileur, aucun profileur n'est en cours d'exécution ou installé sur le serveur et le code ne fait aucune référence aux profileurs, où que ce soit ...
Nous avons essayé de supprimer les clés de registre que d'autres ont mentionnées sont liées à ces messages, mais en vain. il semblerait que deux de nos sites Web/applications Web déclenchent l'erreur, l'une utilisant .Net2 et l'autre utilisant 4, mais je ne sais pas trop où chercher.
Après de longues recherches, j'ai découvert que quelqu'un avait déjà installé dotTrace, puis l'avait désinstallé. Cependant, la désinstallation n'était pas très propre et laissait le registre encombré d'entrées. à ce profileur.
Après la suppression de toutes les entrées de registre liées à dottrace et au CSID présenté, l'erreur ne s'affiche plus dans l'afficheur d'événements.
Voir cette réponse pour un script permettant de retrouver de telles entrées: https://stackoverflow.com/a/36129656/361842
Supprimer la variable d'environnement COR_ENABLE_PROFILING (ou la définir sur 0) de variables utilisateur (Panneau de configuration> Système> Paramètres système avancés> Variables d'environnement) a résolu mon problème (impossible de démarrer MongoVUE)
Bien que la suppression de toutes les références au CLSID du profileur dans le registre ne puisse être une mauvaise chose, vous pouvez également choisir de simplement désactiver le profilage en définissant la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\COR_ENABLE_PROFILING
sur 0
Pour trouver où utiliser cet outil, vous pouvez utiliser le code PowerShell ci-dessous pour détecter les variables d'environnement et les entrées de registre relatives au profileur:
clear-Host
if (-not (get-psdrive HKU)) {
New-PSDrive HKU Registry HKEY_USERS
Set-Location HKU:
}
"COR_ENABLE_PROFILING: $env:COR_ENABLE_PROFILING "
"COR_PROFILER: $env:COR_PROFILER"
$GUID = $env:COR_PROFILER
@(
"HKLM:\Software\Classes\CLSID\$GUID",
"HKLM:\SOFTWARE\Classes\Wow6432Node\CLSID\$GUID",
"HKLM:\SOFTWARE\Wow6432Node\Classes\CLSID\$GUID",
"HKU:\*\Software\Classes\CLSID\$GUID"
) |
get-item |
%{$p = $_.Name;Get-ItemProperty $_.PSPath ''} |
select @{N='Path';E={$p}}, '(default)'
get-itemproperty 'HKLM:\SYSTEM\CurrentControlSet\Services\*\' 'Environment' -ea SilentlyContinue |
%{
$serviceName = $_.PSChildName
$x = new-object PSObject -Property @{ServiceName=$serviceName}
$_ | select -expand Environment |
%{if($_ -match '^(?<Name>[^=]+)(=)?(?<Value>.*)$'){$x | Add-Member -MemberType NoteProperty -Name $matches['Name'] -Value $matches['Value']}}
$x
} |
?{$_.COR_ENABLE_PROFILING -eq 1} |
ft ServiceName, COR_ENABLE_PROFILING, COR_PROFILER, NEWRELIC_INSTALL_PATH -AutoSize
J'espère que cela aidera les autres à l'avenir.
Pour nous, COR_ENABLE_PROFILING était à plusieurs endroits
HKEY_LOCAL_MACHINE\SYSTEM \\ Services\W3SVC et HKEY_LOCAL_MACHINE\SYSTEM \\ Services\WAS
Nous voyons ce problème de temps en temps lorsque nous essayons de démarrer Windows Services.
Ce problème est invariablement que le fichier app.config de l’exécutable est corrompu (xml non valide).
Vérifier que votre app.config est valide xml est une chose facile à vérifier avant de vous diriger pour modifier les paramètres du registre.
Les choses ne fonctionnaient pas même après avoir fait ce que mentionné dans Answer de Agnes. Dans mon cas, mon pool d'applications était défini sur un compte et son mot de passe a expiré ...
Stackify Profiler fera également la même chose pour vous. :(, je trouve difficile de supprimer du registre.