配置编辑器工具 (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 承载的服务的配置文件。

服务配置编辑器的用户界面分成以下几个区域:

  • 树视图窗格,其中以树状结构显示配置元素。右击节点可在树中执行操作。
  • 任务窗格,其中显示了当前元素的常见任务。
  • 详细信息窗格,其中显示了树视图中所选配置节点的详细设置。

打开配置文件

  1. 使用命令窗口定位到 WCF 安装位置,然后键入 SvcConfigEditor.exe,以启动服务配置编辑器。
  2. 从**“文件”菜单中,选择“打开”**,然后单击要管理的文件类型。
  3. 在**“打开”**对话框中,定位到要管理的特定文件,然后双击该文件。

查看器自动跟随配置合并路径,并创建合并配置的视图。例如,非宿主服务的实际配置是 Machine.config 和 App.config 的组合。任何更改都将应用于 SvcConfigEditor 中当前打开的文件。如果要编辑配置合并路径中的特定文件,应直接将其打开。

提示

如果在编辑器外部修改了后者,配置编辑器将重新加载当前打开的配置文件。发生这种情况时,未在编辑器内永久保存的所有更改都将丢失。如果一直发生重新加载情况,最可能的原因是某项服务(例如,在后台运行的防病毒软件)在不断地访问配置文件。若要解决此问题,请确保配置编辑器是在文件打开时唯一能够访问该文件的进程。

服务

**“服务”**节点显示了配置文件中当前分配的所有服务。树中的每一个子节点对应于配置文件中 <services> 元素的一个子元素。

单击**“服务”节点后,可在“详细信息”**窗格中的服务“摘要页”上查看或执行任务。

创建新的服务配置

可按下列方法创建新的服务配置:

  • 使用向导创建:单击“任务窗格”或“摘要页”上的**“新建服务…”链接启动向导。在“文件”菜单 ->“添加新项目”**中也可进行此操作。
  • 手动创建:可右击**“服务”节点,然后选择“新建服务”**。

创建新的服务终结点配置

可按下列方法创建新的服务终结点配置:

  • 使用向导创建:单击“任务窗格”或“摘要页”上的**“新建服务终结点…”链接启动向导。在“文件”菜单 ->“添加新项目”**中也可进行此操作。
  • 手动创建:创建了服务之后,可右击**“终结点”节点,然后选择“新建服务终结点”**。

编辑服务配置

  1. 单击**“服务”**节点。
  2. 在属性网格中编辑设置。

编辑服务终结点配置

  1. 单击**“服务终结点”**节点。
  2. 在属性网格中编辑设置。

添加基址

  1. 单击**“主机”**节点。
  2. 单击**“基址”部分中的“新建…”**按钮。
  3. 在对话框中输入基址 URI。
  4. 单击**“确定”**。

注意:您无法在此工具内编辑 <baseAddressPrefixFilters> 的值。若要添加或修改此元素,您应使用文本编辑器或 Visual Studio。

客户端

**“客户端”**节点显示了配置文件中的所有客户端终结点。树中的每一个子节点对应于配置文件中 <client> 元素的一个子元素。

单击**“客户端”节点后,可在“详细信息窗格”中的客户端“摘要页”**上查看或执行任务。

创建新的客户端终结点配置

可按下列方法创建新的客户端终结点配置:

  • 使用向导创建:单击**“任务窗格”“摘要页”上的“新建客户端…”链接启动向导。在“文件”菜单 ->“添加新项目”**中也可进行此操作。
  • 手动创建:右击**“客户端”下的“终结点”节点,然后选择“新建客户端终结点”**。

编辑客户端终结点配置

  1. 单击**“客户端终结点”**节点。
  2. 在属性网格中编辑设置。

绑定

绑定配置用于配置终结点上的绑定。此类配置设置存储在**“绑定”**节点中。终结点按名称引用绑定配置,并且多个终结点可引用同一个绑定配置。

**“绑定”**节点显示配置文件中的所有绑定设置。树中的每一个子节点对应于配置文件中 <bindings> 元素的一个子元素。

单击**“绑定”节点后,可在“详细信息窗格”中的绑定“摘要页”**上查看或执行任务。

创建新的绑定配置

可按下列方法创建新的绑定配置。

  • 右击**“绑定”节点并选择“新建绑定配置...”。在对话框中选择绑定类型,然后单击“确定”**。
  • 选择**“绑定”节点,然后单击“任务窗格”中的“新建绑定配置…”**。
  • 在服务或客户端摘要页上,单击**“绑定配置”字段中的“单击可创建”**以创建对应终结点的绑定配置。

向自定义绑定添加绑定元素扩展

  1. 选择要向其添加扩展元素的绑定。
  2. 单击**“添加”**。
  3. 从可用扩展列表中,选择要添加的绑定元素扩展。按住 Ctrl 键的同时进行选择可选择多项。
  4. 单击**“添加”**。

调整自定义绑定中的扩展位置

自定义绑定是形成堆栈的一系列绑定元素。堆栈中的每个绑定元素都有其自己的配置设置。绑定元素扩展在自定义绑定中的顺序指示它们在堆栈中的位置。堆栈顶部的元素首先得到应用。若要更改顺序,

  1. 选择自定义绑定节点。
  2. 在**“绑定元素扩展位置”**部分中选择一个绑定扩展元素。
  3. 使用列表左侧的**“上移”“下移”**按钮更改所选元素的位置。

编辑自定义绑定中的绑定元素扩展的配置

  1. 选择树中的绑定节点
  2. 选择包含要编辑的元素的自定义绑定
  3. 选择要编辑的绑定元素扩展。该元素的设置将出现在右窗格中,可在其中编辑这些设置。

行为

**“行为”**节点显示配置文件中当前定义的行为。

行为配置用于配置终结点和服务的行为。此类配置设置存储在**“服务行为”“终结点行为”下的“高级”**节点中。服务行为由服务使用;而终结点行为则由终结点使用。

行为是形成堆栈的一系列扩展元素。堆栈顶部的元素首先得到应用。每个扩展元素可有其自己的配置。

创建新的行为配置

可通过以下两种方法创建新的行为配置。

  • 右击某个行为节点,然后选择**“新建行为配置…”[New Behavior Configuration…]**
  • 选择某个行为节点,然后单击**“任务窗格”中的“新建行为配置…”[New Behavior Configuration…]**。

向行为中添加行为元素扩展

  1. 选择一个行为节点。
  2. 选择要编辑的行为。
  3. 单击**“添加”**。
  4. 从可用扩展列表中,选择要添加的行为元素扩展。
  5. 单击**“添加”**。

调整行为中的扩展位置

行为是形成堆栈的元素集合。堆栈中的每个元素都有其自己的配置。行为元素扩展在行为中的顺序指示它们在堆栈中的位置。堆栈顶部的元素首先得到应用。若要更改顺序:

  1. 选择一个行为节点。
  2. 选择要编辑的行为。
  3. 在**“行为元素扩展位置”[Behavior Element Extension Position]**部分中选择一个行为扩展元素。
  4. 使用列表左侧的**“上移”“下移”**按钮更改所选元素的位置。

编辑行为元素扩展的配置

  1. 选择树中的一个行为节点。
  2. 选择包含要编辑的元素的行为。
  3. 选择要编辑的行为元素扩展。该元素的设置将出现在右窗格中,可在其中编辑这些设置。

扩展

可注册新的绑定扩展、绑定元素扩展和行为扩展以在 WCF 配置中使用。扩展是名称/类型对。名称定义扩展在配置中的名称,而类型则实现该扩展。有三种类型的扩展:

  • 绑定扩展定义整个绑定类型。示例:basicHttpBinding
  • 绑定元素扩展定义绑定的元素。示例:textMessageEncoding
  • 行为元素扩展定义行为的元素。示例:clientVia

可像使用同类型的任何其他 WCF 组件一样使用已在配置中注册的扩展。

添加新扩展

选择高级节点中的某个扩展节点:

  1. 单击**“新建”**。
  2. 输入名称和类型。
  3. 单击**“确定”**。
  4. 扩展现在出现在编辑器中的适当位置。例如,如果添加了行为元素扩展,它将出现在可用扩展的列表中。

诊断

**“诊断”节点显示了配置文件中的所有诊断设置。它使您能够开关性能计数器、启用或禁用 Windows Management Instrumentation (WMI)、配置 WCF 跟踪,以及配置 WCF 消息日志记录。“诊断”**节点中的设置对应于配置文件的 <system.serviceModel> 中的 <system.diagnostics> 节和 <diagnostics> 节。

单击**“诊断”节点后,可在“详细信息窗格”中的诊断“摘要页”**上查看或执行任务。

配置性能计数器和 WMI

  1. 单击**“诊断”**节点。
  2. 单击**“切换性能计数器”**。性能计数器有三种状态:Off(默认)、ServiceOnly 和 All。单击链接可在这三种状态之间切换设置。

配置 WMI 提供程序

  1. 单击**“诊断”**节点。
  2. 若要启用 WMI 提供程序,请单击**“启用 WMI 提供程序”[Enable WMI Provider]**链接。

启用 WCF 跟踪

可创建具有标准属性的 WCF 跟踪文件,或者设置自定义的跟踪文件。

  1. 单击**“诊断”**节点。
  2. 单击**“启用跟踪”**。
  3. 单击**“跟踪级别”链接调整跟踪级别。有六种跟踪级别:“禁用”、“严重”、“错误”、“警告”、“信息”和“详细”。“活动跟踪”“传播活动”**选项使您能使用 WCF 活动跟踪功能。
  4. 单击跟踪侦听器名称指定跟踪文件和选项。

启用 WCF 日志记录

可创建具有标准属性的 WCF 跟踪文件,或者设置自定义的跟踪文件。

  1. 单击**“诊断”**节点。
  2. 单击**“启用消息日志记录”**。
  3. 单击**“日志级别”**链接调整日志级别。有三种日志级别:“格式错误”、“服务”和“传输”。
  4. 单击侦听器名称指定日志文件和选项。

提示

如果要在应用程序关闭时自动刷新跟踪和消息日志,请启用“自动刷新”选项。

在**“诊断”“摘要页”中可以完成配置诊断中的大部分常见任务。但是,如果要手动编辑“侦听器”和“源”设置,必须展开“诊断”节点,然后编辑“消息日志记录”“侦听器”“源”**节点中的设置。

启用 WCF 自定义跟踪或消息日志记录

  1. 单击**“诊断”**节点,然后将其展开。
  2. 右击**“侦听器”节点,然后选择“新建侦听器”**。
  3. 在**“InitData”**字段中,输入跟踪文件名。可单击“…”按钮通过浏览找到路径。
  4. 单击**“TypeName”行将显示“…”按钮。单击此按钮打开“跟踪侦听器类型浏览器”**,可使用该浏览器查找已经安装的预配置跟踪侦听器。
  5. 请注意**“源”部分。单击此部分中的“添加”打开带有下拉菜单的对话框,该菜单中列出了可用的跟踪源。选择一个跟踪源,然后单击“确定”**。
  6. 若要编辑“消息日志记录”设置,请单击**“消息日志记录”**节点。可在属性网格中编辑这些设置。

使用向导创建配置文件

创建新配置文件的一种方法是使用“新建服务元素向导”。该向导查找计算机上已安装的服务类型以及其他与 WCF 兼容的元素(包括 COM+ 和 Web 承载的虚拟目录),并加载它们以方便创建配置。

创建配置文件

  1. 使用命令窗口定位到 WCF 安装位置,然后键入 SvcConfigEditor.exe,以启动服务配置编辑器。
  2. 从**“文件”菜单上选择“打开”,然后根据要创建的配置文件的类型单击“可执行文件”“COM+ 服务”“WebHosted 服务”**。
  3. 在**“打开”**对话框中,定位到要为其创建配置文件的特定文件,然后双击它。
  4. 在**“文件”菜单中,指向“添加新项目”,然后单击“服务”**。“新建服务元素向导”随即打开。
  5. 按照向导中的步骤创建新服务。

提示

如果想要从向导生成的配置文件中使用 NetPeerTcpBinding,您必须手动添加一个绑定配置元素,并将其 security 元素的 mode 属性设置为“None”。

配置 COM+

使用服务配置编辑器可以为现有 COM+ 应用程序创建新的配置文件,或者编辑现有的 COM+ 配置。**“COM 约定”**节点仅在配置文件中存在 <comContract> 节时才可见。

创建新的 COM+ 配置

创建新的 COM+ 配置之前,请确保您的 COM+ 应用程序已安装在组件服务中,并已在全局程序集缓存 (GAC) 中注册。

  1. 选择**“文件”菜单 ->“集成”->“COM+ 应用程序”。此操作将关闭当前打开的文件。如果当前文件中有未保存的数据,将显示“保存”对话框。“COM+ 集成向导”**随后启动。
  2. 在第一页中,从树中选择 COM+ 应用程序。如果在树中找不到您的 COM+ 应用程序,请验证它是否已安装在组件服务中,并已在全局程序集缓存 (GAC) 中注册。
  3. 在下一页中,选择要公开哪个(哪些)方法作为 WCF 服务。默认情况下,COM+ 应用程序中支持的所有方法都将显示并被选中。
  4. 选择宿主方法。
  5. 根据向导中的指导配置其他设置。
  6. 服务配置编辑器在后台利用 ComSvcConfig.exe 来生成配置文件。此操作完成后,可查看摘要,然后退出向导。生成的配置文件将打开,您可以直接进行编辑。

编辑现有 COM+ 配置

  1. 选择**“文件”菜单 ->“打开”->“COM+ 服务…”**

  2. 从列表中选择要编辑的 COM+ 服务。

  3. 编辑**“COM 约定”**节点中的配置设置。

    提示

    也可以直接打开并编辑包含 COM 约定的配置文件。

安全性

不能保证配置编辑器生成的服务配置文件是安全的。请参考 Windows Communication Foundation Security 文档以了解如何保护 WCF 服务的安全。

此外,只能使用配置编辑器来读取和写入有效的 WCF 配置元素。工具将忽略符合架构的用户定义元素。工具不会尝试从配置文件中移除这些元素,或确定它们对已知 WCF 元素的影响。用户需要负责确定这些元素是否会对应用程序或系统构成威胁。