配置编辑器工具 (SvcConfigEditor.exe)
使用 Windows Communication Foundation (WCF) 服务配置编辑器 (SvcConfigEditor.exe),管理员和开发人员可以使用图形用户界面来创建和修改 WCF 服务的配置设置。利用此工具,您不必直接编辑 XML 配置文件就可管理 WCF 绑定、行为、服务和诊断的设置。
WCF 配置编辑器
服务配置编辑器附带了一个向导,该向导可引导您完成配置 WCF 服务或客户端的所有步骤。强烈建议您使用向导,而不是直接使用编辑器。
如果已经有一些符合标准 System.Configuration 架构的配置文件,可通过用户界面管理绑定、行为、服务和诊断的特定设置。使用服务配置编辑器,可以管理现有 WCF 配置文件的设置,以及可执行文件、COM+ 服务和 Web 承载的服务的设置。
由于 WCF 配置设置位于配置文件的 <system.serviceModel> 节中,编辑器只会对此元素的内容进行操作,而不会访问同一文件中的其他元素。
可以直接定位到现有配置文件,或者可选择包含服务、虚拟目录或 COM+ 服务的程序集。编辑器将为该特定服务加载配置文件,并允许用户添加新元素或编辑嵌套在配置文件的 <system.serviceModel> 节中的现有元素。
编辑器支持 IntelliSense,并强制遵从架构要求。可以保证生成的输出符合配置文件的架构,并具有在语法上正确的数据值。但是,编辑器不保证配置文件在语义上是有效的。换句话说,编辑器不保证配置文件可与它配置的服务协同工作。
警告
一旦您修改了某个配置元素后,编辑器将无法从配置文件中清除该元素。例如,如果使用编辑器将终结点名称设置为非空字符串并加以保存,配置文件将具有以下内容:
<endpoint binding="basicHttpBinding" name="somename" />
如果尝试通过将名称设置为空字符串来移除名称并保存文件,配置文件仍将包含 name 属性:
<endpoint binding="basicHttpBinding" name="" />
若要清除该属性,您必须使用另一个文本编辑器手动编辑该元素。
在使用 clientCredential 终结点行为的 issueToken 元素时,应要特别小心此问题。特别是,其 localIssuer 子元素的 address 属性一定不能为空字符串。如果使用配置编辑器修改了 address 属性并且想要完全移除该属性,您应使用除该编辑器之外的其他工具来进行操作。否则,该属性将包含空字符串,并且应用程序将引发异常。
使用配置编辑器
服务配置编辑器可在以下 Windows SDK 安装位置中找到
C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\SvcConfigEditor.exe
启动服务配置编辑器后,可以使用**“文件”/“打开”**菜单浏览想要管理的服务或程序集。可以直接打开配置文件、浏览 WCF /COM+ 服务,以及打开 Web 承载的服务的配置文件。
服务配置编辑器的用户界面分成以下几个区域:
- 树视图窗格,其中以树状结构显示配置元素。右击节点可在树中执行操作。
- 任务窗格,其中显示了当前元素的常见任务。
- 详细信息窗格,其中显示了树视图中所选配置节点的详细设置。
打开配置文件
- 使用命令窗口定位到 WCF 安装位置,然后键入 SvcConfigEditor.exe,以启动服务配置编辑器。
- 从**“文件”菜单中,选择“打开”**,然后单击要管理的文件类型。
- 在**“打开”**对话框中,定位到要管理的特定文件,然后双击该文件。
查看器自动跟随配置合并路径,并创建合并配置的视图。例如,非宿主服务的实际配置是 Machine.config 和 App.config 的组合。任何更改都将应用于 SvcConfigEditor 中当前打开的文件。如果要编辑配置合并路径中的特定文件,应直接将其打开。
提示
如果在编辑器外部修改了后者,配置编辑器将重新加载当前打开的配置文件。发生这种情况时,未在编辑器内永久保存的所有更改都将丢失。如果一直发生重新加载情况,最可能的原因是某项服务(例如,在后台运行的防病毒软件)在不断地访问配置文件。若要解决此问题,请确保配置编辑器是在文件打开时唯一能够访问该文件的进程。
服务
**“服务”**节点显示了配置文件中当前分配的所有服务。树中的每一个子节点对应于配置文件中 <
services>
元素的一个子元素。
单击**“服务”节点后,可在“详细信息”**窗格中的服务“摘要页”上查看或执行任务。
创建新的服务配置
可按下列方法创建新的服务配置:
- 使用向导创建:单击“任务窗格”或“摘要页”上的**“新建服务…”链接启动向导。在“文件”菜单 ->“添加新项目”**中也可进行此操作。
- 手动创建:可右击**“服务”节点,然后选择“新建服务”**。
创建新的服务终结点配置
可按下列方法创建新的服务终结点配置:
- 使用向导创建:单击“任务窗格”或“摘要页”上的**“新建服务终结点…”链接启动向导。在“文件”菜单 ->“添加新项目”**中也可进行此操作。
- 手动创建:创建了服务之后,可右击**“终结点”节点,然后选择“新建服务终结点”**。
编辑服务配置
- 单击**“服务”**节点。
- 在属性网格中编辑设置。
编辑服务终结点配置
- 单击**“服务终结点”**节点。
- 在属性网格中编辑设置。
添加基址
- 单击**“主机”**节点。
- 单击**“基址”部分中的“新建…”**按钮。
- 在对话框中输入基址 URI。
- 单击**“确定”**。
注意:您无法在此工具内编辑 <baseAddressPrefixFilters> 的值。若要添加或修改此元素,您应使用文本编辑器或 Visual Studio。
客户端
**“客户端”**节点显示了配置文件中的所有客户端终结点。树中的每一个子节点对应于配置文件中 <client> 元素的一个子元素。
单击**“客户端”节点后,可在“详细信息窗格”中的客户端“摘要页”**上查看或执行任务。
创建新的客户端终结点配置
可按下列方法创建新的客户端终结点配置:
- 使用向导创建:单击**“任务窗格”或“摘要页”上的“新建客户端…”链接启动向导。在“文件”菜单 ->“添加新项目”**中也可进行此操作。
- 手动创建:右击**“客户端”下的“终结点”节点,然后选择“新建客户端终结点”**。
编辑客户端终结点配置
- 单击**“客户端终结点”**节点。
- 在属性网格中编辑设置。
绑定
绑定配置用于配置终结点上的绑定。此类配置设置存储在**“绑定”**节点中。终结点按名称引用绑定配置,并且多个终结点可引用同一个绑定配置。
**“绑定”**节点显示配置文件中的所有绑定设置。树中的每一个子节点对应于配置文件中 <bindings> 元素的一个子元素。
单击**“绑定”节点后,可在“详细信息窗格”中的绑定“摘要页”**上查看或执行任务。
创建新的绑定配置
可按下列方法创建新的绑定配置。
- 右击**“绑定”节点并选择“新建绑定配置...”。在对话框中选择绑定类型,然后单击“确定”**。
- 选择**“绑定”节点,然后单击“任务窗格”中的“新建绑定配置…”**。
- 在服务或客户端摘要页上,单击**“绑定配置”字段中的“单击可创建”**以创建对应终结点的绑定配置。
向自定义绑定添加绑定元素扩展
- 选择要向其添加扩展元素的绑定。
- 单击**“添加”**。
- 从可用扩展列表中,选择要添加的绑定元素扩展。按住 Ctrl 键的同时进行选择可选择多项。
- 单击**“添加”**。
调整自定义绑定中的扩展位置
自定义绑定是形成堆栈的一系列绑定元素。堆栈中的每个绑定元素都有其自己的配置设置。绑定元素扩展在自定义绑定中的顺序指示它们在堆栈中的位置。堆栈顶部的元素首先得到应用。若要更改顺序,
- 选择自定义绑定节点。
- 在**“绑定元素扩展位置”**部分中选择一个绑定扩展元素。
- 使用列表左侧的**“上移”或“下移”**按钮更改所选元素的位置。
编辑自定义绑定中的绑定元素扩展的配置
- 选择树中的绑定节点
- 选择包含要编辑的元素的自定义绑定
- 选择要编辑的绑定元素扩展。该元素的设置将出现在右窗格中,可在其中编辑这些设置。
行为
**“行为”**节点显示配置文件中当前定义的行为。
行为配置用于配置终结点和服务的行为。此类配置设置存储在**“服务行为”和“终结点行为”下的“高级”**节点中。服务行为由服务使用;而终结点行为则由终结点使用。
行为是形成堆栈的一系列扩展元素。堆栈顶部的元素首先得到应用。每个扩展元素可有其自己的配置。
创建新的行为配置
可通过以下两种方法创建新的行为配置。
- 右击某个行为节点,然后选择**“新建行为配置…”[New Behavior Configuration…]**
- 选择某个行为节点,然后单击**“任务窗格”中的“新建行为配置…”[New Behavior Configuration…]**。
向行为中添加行为元素扩展
- 选择一个行为节点。
- 选择要编辑的行为。
- 单击**“添加”**。
- 从可用扩展列表中,选择要添加的行为元素扩展。
- 单击**“添加”**。
调整行为中的扩展位置
行为是形成堆栈的元素集合。堆栈中的每个元素都有其自己的配置。行为元素扩展在行为中的顺序指示它们在堆栈中的位置。堆栈顶部的元素首先得到应用。若要更改顺序:
- 选择一个行为节点。
- 选择要编辑的行为。
- 在**“行为元素扩展位置”[Behavior Element Extension Position]**部分中选择一个行为扩展元素。
- 使用列表左侧的**“上移”或“下移”**按钮更改所选元素的位置。
编辑行为元素扩展的配置
- 选择树中的一个行为节点。
- 选择包含要编辑的元素的行为。
- 选择要编辑的行为元素扩展。该元素的设置将出现在右窗格中,可在其中编辑这些设置。
扩展
可注册新的绑定扩展、绑定元素扩展和行为扩展以在 WCF 配置中使用。扩展是名称/类型对。名称定义扩展在配置中的名称,而类型则实现该扩展。有三种类型的扩展:
- 绑定扩展定义整个绑定类型。示例:basicHttpBinding。
- 绑定元素扩展定义绑定的元素。示例:textMessageEncoding。
- 行为元素扩展定义行为的元素。示例:clientVia。
可像使用同类型的任何其他 WCF 组件一样使用已在配置中注册的扩展。
添加新扩展
选择高级节点中的某个扩展节点:
- 单击**“新建”**。
- 输入名称和类型。
- 单击**“确定”**。
- 扩展现在出现在编辑器中的适当位置。例如,如果添加了行为元素扩展,它将出现在可用扩展的列表中。
诊断
**“诊断”节点显示了配置文件中的所有诊断设置。它使您能够开关性能计数器、启用或禁用 Windows Management Instrumentation (WMI)、配置 WCF 跟踪,以及配置 WCF 消息日志记录。“诊断”**节点中的设置对应于配置文件的 <system.serviceModel> 中的 <system.diagnostics> 节和 <diagnostics> 节。
单击**“诊断”节点后,可在“详细信息窗格”中的诊断“摘要页”**上查看或执行任务。
配置性能计数器和 WMI
- 单击**“诊断”**节点。
- 单击**“切换性能计数器”**。性能计数器有三种状态:Off(默认)、ServiceOnly 和 All。单击链接可在这三种状态之间切换设置。
配置 WMI 提供程序
- 单击**“诊断”**节点。
- 若要启用 WMI 提供程序,请单击**“启用 WMI 提供程序”[Enable WMI Provider]**链接。
启用 WCF 跟踪
可创建具有标准属性的 WCF 跟踪文件,或者设置自定义的跟踪文件。
- 单击**“诊断”**节点。
- 单击**“启用跟踪”**。
- 单击**“跟踪级别”链接调整跟踪级别。有六种跟踪级别:“禁用”、“严重”、“错误”、“警告”、“信息”和“详细”。“活动跟踪”和“传播活动”**选项使您能使用 WCF 活动跟踪功能。
- 单击跟踪侦听器名称指定跟踪文件和选项。
启用 WCF 日志记录
可创建具有标准属性的 WCF 跟踪文件,或者设置自定义的跟踪文件。
- 单击**“诊断”**节点。
- 单击**“启用消息日志记录”**。
- 单击**“日志级别”**链接调整日志级别。有三种日志级别:“格式错误”、“服务”和“传输”。
- 单击侦听器名称指定日志文件和选项。
提示
如果要在应用程序关闭时自动刷新跟踪和消息日志,请启用“自动刷新”选项。
在**“诊断”的“摘要页”中可以完成配置诊断中的大部分常见任务。但是,如果要手动编辑“侦听器”和“源”设置,必须展开“诊断”节点,然后编辑“消息日志记录”、“侦听器”和“源”**节点中的设置。
启用 WCF 自定义跟踪或消息日志记录
- 单击**“诊断”**节点,然后将其展开。
- 右击**“侦听器”节点,然后选择“新建侦听器”**。
- 在**“InitData”**字段中,输入跟踪文件名。可单击“…”按钮通过浏览找到路径。
- 单击**“TypeName”行将显示“…”按钮。单击此按钮打开“跟踪侦听器类型浏览器”**,可使用该浏览器查找已经安装的预配置跟踪侦听器。
- 请注意**“源”部分。单击此部分中的“添加”打开带有下拉菜单的对话框,该菜单中列出了可用的跟踪源。选择一个跟踪源,然后单击“确定”**。
- 若要编辑“消息日志记录”设置,请单击**“消息日志记录”**节点。可在属性网格中编辑这些设置。
使用向导创建配置文件
创建新配置文件的一种方法是使用“新建服务元素向导”。该向导查找计算机上已安装的服务类型以及其他与 WCF 兼容的元素(包括 COM+ 和 Web 承载的虚拟目录),并加载它们以方便创建配置。
创建配置文件
- 使用命令窗口定位到 WCF 安装位置,然后键入 SvcConfigEditor.exe,以启动服务配置编辑器。
- 从**“文件”菜单上选择“打开”,然后根据要创建的配置文件的类型单击“可执行文件”、“COM+ 服务”或“WebHosted 服务”**。
- 在**“打开”**对话框中,定位到要为其创建配置文件的特定文件,然后双击它。
- 在**“文件”菜单中,指向“添加新项目”,然后单击“服务”**。“新建服务元素向导”随即打开。
- 按照向导中的步骤创建新服务。
提示
如果想要从向导生成的配置文件中使用 NetPeerTcpBinding,您必须手动添加一个绑定配置元素,并将其 security 元素的 mode 属性设置为“None”。
配置 COM+
使用服务配置编辑器可以为现有 COM+ 应用程序创建新的配置文件,或者编辑现有的 COM+ 配置。**“COM 约定”**节点仅在配置文件中存在 <comContract> 节时才可见。
创建新的 COM+ 配置
创建新的 COM+ 配置之前,请确保您的 COM+ 应用程序已安装在组件服务中,并已在全局程序集缓存 (GAC) 中注册。
- 选择**“文件”菜单 ->“集成”->“COM+ 应用程序”。此操作将关闭当前打开的文件。如果当前文件中有未保存的数据,将显示“保存”对话框。“COM+ 集成向导”**随后启动。
- 在第一页中,从树中选择 COM+ 应用程序。如果在树中找不到您的 COM+ 应用程序,请验证它是否已安装在组件服务中,并已在全局程序集缓存 (GAC) 中注册。
- 在下一页中,选择要公开哪个(哪些)方法作为 WCF 服务。默认情况下,COM+ 应用程序中支持的所有方法都将显示并被选中。
- 选择宿主方法。
- 根据向导中的指导配置其他设置。
- 服务配置编辑器在后台利用 ComSvcConfig.exe 来生成配置文件。此操作完成后,可查看摘要,然后退出向导。生成的配置文件将打开,您可以直接进行编辑。
编辑现有 COM+ 配置
选择**“文件”菜单 ->“打开”->“COM+ 服务…”**
从列表中选择要编辑的 COM+ 服务。
编辑**“COM 约定”**节点中的配置设置。
提示
也可以直接打开并编辑包含 COM 约定的配置文件。
安全性
不能保证配置编辑器生成的服务配置文件是安全的。请参考 Windows Communication Foundation Security 文档以了解如何保护 WCF 服务的安全。
此外,只能使用配置编辑器来读取和写入有效的 WCF 配置元素。工具将忽略符合架构的用户定义元素。工具不会尝试从配置文件中移除这些元素,或确定它们对已知 WCF 元素的影响。用户需要负责确定这些元素是否会对应用程序或系统构成威胁。