此命令行工具提供在单个计算机上管理 WCF 和 WF 组件的注册的功能。 在正常情况下,不应使用此工具,因为 WCF 和 WF 组件是在安装时配置的。 但是,如果遇到服务激活问题,则可以尝试使用此工具注册组件。
Syntax
ServiceModelReg.exe[(-ia|-ua|-r)|((-i|-u) -c:<command>)] [-v|-q] [-nologo] [-?]
注解
可以在以下位置找到该工具:
%SystemRoot%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
注释
当 ServiceModel 注册工具在 Windows Vista 上运行时,Windows 功能对话框可能不会反映打开Microsoft .NET Framework 3.0 下的 Windows Communication Foundation HTTP 激活选项。 可以通过单击“开始”,然后单击“运行”,然后键入 OptionalFeatures 来访问 Windows 功能对话框。
下表描述了可用于 ServiceModelReg.exe的选项。
| 选项 | Description |
|---|---|
-ia |
安装所有 WCF 和 WF 组件。 |
-ua |
卸载所有 WCF 和 WF 组件。 |
-r |
修复所有 WCF 和 WF 组件。 |
-i |
安装使用 -c 指定的 WCF 和 WF 组件。 |
-u |
卸载使用 -c 指定的 WCF 和 WF 组件。 |
-c |
安装或卸载组件: - httpnamespace - HTTP 命名空间预留 - tcpportsharing - TCP 端口共享服务 - tcpactivation - TCP 激活服务(.NET 4 客户端配置文件不支持) - namedpipeactivation - 命名管道激活服务(.NET 4 客户端配置文件不支持) - msmqactivation - MSMQ 激活服务(.NET 4 客户端配置文件不支持) - etw – ETW 事件跟踪清单(Windows Vista 或更高版本) |
-q |
静默模式(仅显示错误日志记录) |
-v |
详细模式。 |
-nologo |
禁止显示版权和横幅消息。 |
-? |
显示帮助文本 |
修复 FileLoadException 错误
如果在计算机上安装早期版本的 WCF,则运行 ServiceModelReg 工具注册新安装时可能会出错 FileLoadFoundException 。 即使已手动从上一个安装中删除文件,但保留 machine.config 设置保持不变,也可能发生这种情况。
错误消息类似于以下内容。
Error: System.IO.FileLoadException: Could not load file or assembly 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
应从错误消息中记下 System.ServiceModel 版本 2.0.0.0 程序集由早期客户技术预览版(CTP)安装。 发布的 System.ServiceModel 程序集的当前版本为 3.0.0.0。 因此,如果要在安装了 WCF 早期 CTP 版本的计算机上安装官方 WCF 版本,但未完全卸载,则会遇到此问题。
ServiceModelReg.exe 无法清理以前的版本条目,也不能注册新版本的条目。 唯一的解决方法是手动编辑 machine.config。可以在以下位置找到此文件。
%windir%\Microsoft.NET\Framework\v2.0.50727\config\machine.config
如果在 64 位计算机上运行 WCF,则还应在此位置编辑同一文件。
%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config
找到此文件中引用“System.ServiceModel,Version=2.0.0.0”的任何 XML 节点,删除它们和任何子节点。 保存文件并重新运行 ServiceModelReg.exe 解决此问题。
例子
以下示例演示如何使用 ServiceModelReg.exe 工具的最常见选项。
ServiceModelReg.exe -ia
Installs all components
ServiceModelReg.exe -i -c:httpnamespace -c:etw
Installs HTTP namespace reservation and ETW manifests
ServiceModelReg.exe -u -c:etw
Uninstalls ETW manifests
ServiceModelReg.exe -r
Repairs an extended install