无法CoCreate Profiler错误 - 但未使用分析器

Dal*_*ale 31 .net asp.net iis profiler

我们得到了:

.NET运行时版本2.0.50727.5448 - 无法CoCreate探查器

我们的网络服务器上的事件查看器中的消息,以及随附的消息:

.NET运行时版本4.0.30319.239 - 在CoCreateInstance期间加载分析器失败.Profiler CLSID:'{d37a1b78-6dc5-46fc-bc31-f7c4d5a11c9c}'.HRESULT:0x8007007e.进程ID(十进制):224.消息ID:[0x2504].

问题是,我们没有尝试使用分析器,服务器上没有运行或安装的分析器,代码在任何地方都没有引用分析器......

我们已经尝试删除其他人指出的与这些消息相关的注册表项,但无济于事; 似乎我们的两个网站/网络应用程序正在解决错误,一个使用.Net2,另一个使用4,但我不知道在哪里查看.

Dal*_*ale 27

经过一番搜索,我发现,有人以前安装dotTrace,然后卸载它,但是卸载是不是很干净,并留下条目散落注册表,但我们会删除我们认为可以停止有更具体的问题的一些条目那个探查器.

删除与dottrace相关的所有注册表项及其显示的CSID后,我们不再在事件查看器中显示错误.

有关脚本的帮助,请参阅此答案:https://stackoverflow.com/a/36129656/361842

  • 还有Ants Performance Profiler的这个问题. (3认同)

小智 17

从用户变量(控制面板>系统>高级系统设置>环境变量)中删除环境变量COR_ENABLE_PROFILING(或将其设置为0)解决了我的问题(无法启动MongoVUE)


Kev*_*sse 14

同时去除在注册表分析器的CLSID所有引用不能是一件坏事,你也可以选择通过设置注册表项来禁用只分析HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\COR_ENABLE_PROFILING0

  • @rushonerok我不记得是否需要重新启动,但如果您使用的是64位操作系统,则需要设置第二个键:`HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\COR_ENABLE_PROFILING` (2认同)

Joh*_*van 10

为了帮助找到可以使用此工具的位置,可以使用以下PowerShell代码来帮助检测与分析器相关的环境变量和注册表项:

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
Run Code Online (Sandbox Code Playgroud)

希望将来能帮助别人.

  • 非常有用的脚本,谢谢.在我的情况下,似乎Stackify Prefix导致K2 Blackpearl的旧v2应用程序池退出并死亡.我卸载了前缀,问题解决了.惭愧我几天前没有找到这个并为自己省下一些痛苦! (3认同)

Geo*_*nez 6

注册表编辑器

  1. 使用regedit对错误日志中的CLSID值执行数据搜索
  2. 删除COR_PROFILER及其值
  3. 将Cor_Enable_Profiling = 1更改为Cor_Enable_Profiling = 0
  4. 请勿删除以下内容的Cor_Enable_Profiling设置
  5. HKEY_LOCAL_MACHINE\SYSTEM\SERVICES\WAS
  6. HKEY_LOCAL_MACHINE\SYSTEM\SERVICES\W3SVC
  7. HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\ IISADMIñ
  8. 这样做可能会导致IIS无法启动.有关详细信息,请参阅以下内容 https://serverfault.com/questions/210903/windows-process-activation-service-wont-start-parameter-is-incorrect-visual/210912
  9. 您可能还需要删除/禁用其他用户和系统变量.如果错误仍然存​​在,请先尝试禁用(COR_ENABLE_PROFILING = 0).希望有所帮助.感谢@Andreas和@ Mike-Monkey的初步指导.

环境变量