【问题标题】:Failed to CoCreate Profiler error - but not using a profiler无法共同创建探查器错误 - 但未使用探查器
【发布时间】:2012-04-18 07:13:42
【问题描述】:

我们得到一个:

.NET 运行时版本 2.0.50727.5448 - 无法共同创建探查器

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

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

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

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

【问题讨论】:

  • 卸载 dotTrace 后我现在遇到了这个问题。安装时也出现错误,但没有分析导致我将其卸载。

标签: asp.net .net iis profiler


【解决方案1】:

经过大量搜索,我发现有人以前安装了 dotTrace,然后将其卸载,但是卸载不是很干净,并且注册表中到处都是条目,尽管我们删除了一些我们认为可以解决问题的条目更具体到该分析器。

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

请参阅此答案以获取有助于查找此类条目的脚本:https://stackoverflow.com/a/36129656/361842

【讨论】:

  • 我用过的每个分析器也有这个问题。为查找错误和问题而创建的产品在卸载时会在您的电脑上产生问题,这有点荒谬。
【解决方案2】:

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

【讨论】:

  • 重要提示:设置为 0 可能无济于事,只有删除有帮助
  • 谢谢,我在执行 SQL 任务时遇到问题,经过几天的跟进,您的回答非常好,再次感谢您
【解决方案3】:

虽然在注册表中删除对分析器 CLSID 的所有引用并不是一件坏事,但您也可以通过将注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\COR_ENABLE_PROFILING 设置为 0 来选择禁用分析器

【讨论】:

  • 将 COR_ENABLE_PROFILING 设置为 0 后仍然出现错误。需要重新启动吗?
  • @rushonerok 我不记得是否需要重新启动,但如果您使用的是 64 位操作系统,则需要设置第二个密钥:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\COR_ENABLE_PROFILING
  • 大概就是这样。安德烈亚斯的回答也有效,但注册表项也应该更改。谢谢。
【解决方案4】:

为了帮助找到可以使用此工具的位置,可以使用以下 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

希望以后能帮助到其他人。

【讨论】:

  • 非常有用的脚本,谢谢。就我而言,Stackify Prefix 似乎导致 K2 Blackpearl 的旧 v2 应用程序池消失并死亡。我卸载了 Prefix,问题解决了。很遗憾我几天前没有找到这个并为自己省去了一些痛苦!
【解决方案5】:

  1. 使用 regedit 执行 Data 搜索错误日志中的 CLSID 值
  2. 删除 COR_PROFILER 及其值
  3. 将 Cor_Enable_Profiling=1 更改为 Cor_Enable_Profiling=0
  4. 不要删除以下任何一项的 Cor_Enable_Profiling 设置:
     HKEY_LOCAL_MACHINE\SYSTEM\Services\WAS
     HKEY_LOCAL_MACHINE\SYSTEM\Services\W3SVC
     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\IISADMI‌​N
    
    这样做可能会导致 IIS 无法启动。有关详细信息,请参阅this question
  5. 您可能还需要删除/禁用其他用户和系统变量。如果错误仍然存​​在,请尝试先禁用 (COR_ENABLE_PROFILING = 0) 删除。希望有帮助。感谢 @Andreas 和 @Mike-Monkey 的初步指导。

【讨论】:

  • 注意一下,在你的环境变量中注册的profiler是Stackify的profiler。
【解决方案6】:

对我们来说,COR_ENABLE_PROFILING 在多个地方

HKEY_LOCAL_MACHINE\SYSTEM\\Services\W3SVC 和 HKEY_LOCAL_MACHINE\SYSTEM\\Services\WAS

【讨论】:

    【解决方案7】:

    Stackify Profiler 也会对你做同样的事情。 :(,我发现很难从注册表中删除。

    【讨论】:

    • 如果它正在运行,您可以使用托盘应用程序通过“禁用分析器”选项从注册表中删除分析器
    【解决方案8】:

    我们在尝试启动 Windows 服务时不时会看到此问题。
    此问题始终是可执行文件的 app.config 已损坏(无效的 xml)。
    仔细检查您的 app.config 是否有效 xml 是在编辑注册表设置之前快速检查的一个简单的事情..

    【讨论】:

      【解决方案9】:

      即使做了艾格尼丝在Answer 中提到的事情,事情也没有奏效。在我的情况下,我将我的应用程序池设置为一个帐户,并且它的密码已过期......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-05
        • 2017-12-16
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多