Wir bekommen ein:
.NET-Laufzeitversion 2.0.50727.5448 - Fehler beim CoCreate-Profiler
nachricht in der Ereignisanzeige auf unserem Webserver, zusammen mit einem begleitenden:
.NET Runtime-Version 4.0.30319.239 - Das Laden des Profilers ist während CoCreateInstance fehlgeschlagen. Profiler CLSID: '{d37a1b78-6dc5-46fc-bc31-f7c4d5a11c9c}'. HRESULT: 0x8007007e. Prozess-ID (dezimal): 224. Nachrichten-ID: [0x2504].
Das Problem ist, dass wir nicht versuchen, einen Profiler zu verwenden. Es wird kein Profiler auf dem Server ausgeführt oder installiert, und der Code verweist nirgendwo auf Profiler.
Wir haben versucht, die Registrierungsschlüssel zu entfernen, von denen andere behaupten, dass sie sich auf diese Nachrichten beziehen, jedoch ohne Erfolg. Es scheint, dass zwei unserer Websites/Webapps den Fehler auslösen, eine mit .Net2 und die andere mit 4, aber ich bin mir nicht sicher, wo sie suchen müssen.
Nach langem Suchen fand ich heraus, dass jemand zuvor dotTrace installiert und dann deinstalliert hatte. Die Deinstallation war jedoch nicht sehr sauber und hatte die Registrierung mit Einträgen verunreinigt zu diesem Profiler.
Nachdem alle Registrierungseinträge, die sich auf dottrace und die darin enthaltene CSID beziehen, entfernt wurden, tritt der Fehler nicht mehr in der Ereignisanzeige auf.
In dieser Antwort finden Sie ein Skript, mit dessen Hilfe Sie nach solchen Einträgen suchen können: https://stackoverflow.com/a/36129656/361842
Das Entfernen der Umgebungsvariablen COR_ENABLE_PROFILING (oder auf "0") aus den Benutzervariablen (Systemsteuerung> System> Erweiterte Systemeinstellungen> Umgebungsvariablen) hat mein Problem behoben (MongoVUE konnte nicht gestartet werden)
Das Entfernen aller Verweise auf die CLSID des Profilers in der Registrierung kann keine schlechte Sache sein. Sie können das Profiling jedoch auch deaktivieren, indem Sie den Registrierungsschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\COR_ENABLE_PROFILING
auf 0
setzen.
Um herauszufinden, wo dieses Tool verwendet werden kann, kann der folgende PowerShell-Code verwendet werden, um Umgebungsvariablen und Registrierungseinträge zu ermitteln, die sich auf den Profiler beziehen:
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
Hoffe das hilft anderen in der Zukunft.
Für uns war COR_ENABLE_PROFILING an mehreren Stellen
HKEY_LOCAL_MACHINE\SYSTEM \\ Services\W3SVC und HKEY_LOCAL_MACHINE\SYSTEM \\ Services\WAS
Dieses Problem tritt von Zeit zu Zeit auf, wenn Sie versuchen, Windows-Dienste zu starten.
Dieses Problem ist ausnahmslos, dass die app.config für die ausführbare Datei beschädigt ist (nicht gültiger XML-Code).
Wenn Sie überprüfen, ob Ihre app.config gültige XML-Datei ist, können Sie dies vor der Überschrift zum Bearbeiten der Registrierungseinstellungen schnell überprüfen.
Die Dinge funktionierten nicht, auch wenn sie das, was in Answer von Agnes erwähnt wurde, nicht taten. In meinem Fall hatte ich für meinen Anwendungspool ein Konto festgelegt, und das Kennwort war abgelaufen.
Stackify Profiler wird dasselbe auch für Sie tun. :(, ich finde es schwierig, es aus der Registry zu entfernen.