如何排除 Windows Communication Foundation (WCF) 安装问题

来源:互联网 发布:金建软件 编辑:程序博客网 时间:2024/04/29 14:14

有些 Windows Communication Foundation 注册表项无法通过在 .NET Framework 3.0 上执行 MSI 修复操作来修复

如果您删除下面的任何注册表项:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0

则在使用从“控制面板”中的“添加/删除程序”小程序中启动的 .NET Framework 3.0 安装程序运行修复时,不会重新创建这些项。若要重新正确创建这些项,用户必须卸载并重新安装 .NET Framework 3.0。

在安装 .NET Framework 3.0 软件包过程中 WMI Service Corruption 阻止 Windows Communication Foundation WMI 提供程序的安装

WMI Service Corruption 可能阻止 Windows Communication Foundation WMI 提供程序的安装。在安装过程中,Windows Communication Foundation 安装程序无法使用 mofcomp.exe 组件注册 WCF .mof 文件。下面列出了几个症状:

  1. .NET Framework 3.0 安装成功完成,但未注册 WCF WMI 提供程序。

  2. 应用程序事件日志中显示一个错误事件,该事件指示在注册 WCF 的 WMI 提供程序或运行 mofcomp.exe 时出现问题。

  3. 用户的 %temp% 目录中名为 dd_wcf_retCA* 的安装日志文件包含对注册 WCF WMI 提供程序失败的引用。

  4. 事件日志或安装跟踪日志文件中可能会列出以下异常之一:

    ServiceModelReg [11:09:59:046]: System.ApplicationException: 使用“E:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModel.mof”执行 E:\WINDOWS\system32\wbem\mofcomp.exe 发生意外结果 3

    或:

    ServiceModelReg [07:19:33:843]: System.TypeInitializationException: “System.Management.ManagementPath”的类型初始值设定项引发异常。---> System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {CF4CC405-E2C5-4DDD-B3CE-5E7582D8C9FA} 的组件时失败,原因是出现以下错误: 80040154。

    或:

    ServiceModelReg [07:19:32:750]: System.IO.FileNotFoundException: 无法加载文件或程序集“C:\WINDOWS\system32\wbem\mofcomp.exe”或其一个依赖项。系统找不到指定的文件。

    文件名:“C:\WINDOWS\system32\wbem\mofcomp.exe”

若要解决前面说明的问题,必须按照以下步骤操作。

  1. 运行 WMI Diagnosis Utility, version 2.0(WMI 诊断实用程序 2.0 版)以修复 WMI 服务。有关使用此工具的更多信息,请参见WMI Diagnosis Utility(WMI 诊断实用程序)主题。

使用“控制面板”中的“添加/删除程序”小程序修复 .NET Framework 3.0 安装,或卸载/重新安装 .NET Framework 3.0。

在安装 .NET Framework 3.5 后修复 .NET Framework 3.0 会移除 .NET Framework 3.5 在 machine.config 中引入的配置元素

如果在安装 .NET Framework 3.5 后修复 .NET Framework 3.0,则会从 machine.config 中移除由 .NET Framework 3.5 引入的配置元素。但是,web.config 保持不变。解决方法是此后通过 ARP 修复 .NET Framework 3.5,或者将工作流服务注册工具 (WFServicesReg.exe) 与 /c 开关结合使用。

工作流服务注册工具 (WFServicesReg.exe) 可在 %windir%\Microsoft.NET\framework\v3.5\ 或 %windir%\Microsoft.NET\framework64\v3.5\ 中找到

安装 .NET Framework 3.5 之后,为 WCF/WF Webhost 正确配置 IIS

如果 .NET Framework 3.5 安装无法配置与 WCF 相关的其他 IIS 配置设置,将会在安装日志中记录错误,然后继续操作。对运行 WorkflowServices 应用程序的任何尝试都将失败,因为缺少必需的配置设置。例如,加载 xoml 或规则服务会失败。

若要解决此问题,请将工作流服务注册工具 (WFServicesReg.exe) 与/c 开关结合使用,以便在计算机上正确配置 IIS 脚本映射。工作流服务注册工具 (WFServicesReg.exe) 可在 %windir%\Microsoft.NET\framework\v3.5\ 或 %windir%\Microsoft.NET\framework64\v3.5\ 中找到

无法从程序集“System.ServiceModel, Version 3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”加载类型“System.ServiceModel.Activation.HttpModule”

如果安装了 .NET Framework 4,随后启用了 .NET Framework 3.5 WCF HTTP 激活,则会发生此错误。若要解决该问题,请在 Visual Studio 2010 命令提示符下运行下面的命令行:

aspnet_regiis.exe -i -enable