服务配置编辑器

通过 Windows Communication Foundation (WCF) 服务配置编辑器，管理员和开发人员可以使用图形用户界面 (GUI) 来创建和修改 WCF 服务的配置设置。利用此工具，您无需直接编辑 XML 文件就可管理 WCF 绑定、行为、服务和诊断的设置。

有关使用服务配置编辑器的一些常见任务的指导，请参见使用服务配置编辑器。

有关其他资源，请参见服务配置编辑器资源。

生成日期：2010-02-11


使用服务配置编辑器

通过 Windows Communication Foundation (WCF) 服务配置编辑器 (SvcConfigEditor.exe)，管理员和开发人员可以使用图形用户界面来创建和修改 WCF 服务的配置设置。利用此工具，您不必直接编辑 XML 配置文件就可管理 WCF 绑定、行为、服务和诊断的设置。

使用服务配置编辑器

服务配置编辑器附带了一个向导，该向导可引导您完成配置 WCF 服务或客户端的所有步骤。强烈建议您使用向导，而不是直接使用编辑器。可使用服务配置编辑器在向导的协助下创建新的 WCF 配置设置文件，或者修改现有设置文件。

如果已经有一些符合标准 System.Configuration 架构的配置文件，可通过用户界面管理绑定、行为、服务和诊断的特定设置。使用服务配置编辑器，可以管理现有 WCF 配置文件及可执行文件、COM+ 服务和 Web 承载的服务的设置。用服务配置编辑器打开 Web 承载的服务时，会同时显示服务自己的配置节和从上级节点继承的配置节。有关更多信息，请参见修改现有的配置文件。

还可以在向导的协助下使用服务配置编辑器来创建新的配置文件。有关更多信息，请参见创建新配置文件。

由于 WCF 配置设置位于配置文件的 <system.serviceModel> 节中，编辑器只会对此元素的内容进行操作，而不会访问同一文件中的其他元素。可以直接定位到现有配置文件，或者可选择包含服务、虚拟目录或 COM+ 服务的程序集。编辑器将为该特定服务加载配置文件，并允许用户添加新元素或编辑嵌套在配置文件的 <system.serviceModel> 节中的现有元素。

编辑器支持 IntelliSense，并强制遵从架构要求。可以保证生成的输出符合配置文件的架构，并具有在语法上正确的数据值。但是，编辑器不保证配置文件在语义上是有效的。换句话说，编辑器不保证配置文件可与它配置的服务协同工作。

警告：
一旦您修改了某个配置元素后，编辑器将无法从配置文件中清除该元素。例如，如果使用编辑器将终结点名称设置为非空字符串并加以保存，配置文件将具有以下内容：<endpoint binding="basicHttpBinding" name="somename" /> 如果尝试通过将名称设置为空字符串来移除名称并保存文件，配置文件仍将包含 name 特性：<endpoint binding="basicHttpBinding" name="" /> 若要清除该特性，您必须使用另一个文本编辑器手动编辑该元素。在使用 clientCredential 终结点行为的 issueToken 元素时，应要特别小心此问题。特别是，其 localIssuer 子元素的 address 特性一定不能为空字符串。如果使用配置编辑器修改了 address 特性并且想要完全移除该特性，您应使用除该编辑器之外的其他工具来进行操作。否则，该特性将包含空字符串，并且应用程序将引发异常。


修改现有的配置文件

本节包含有关使用 Windows Communication Foundation (WCF) 服务配置编辑器更改现有配置文件中的设置的信息。

有关使用“新建服务元素向导”的信息，请参见创建新配置文件，这是生成新配置文件的最简单方法。

本节内容

打开配置文件

演示用于打开配置文件的步骤。

创建或编辑服务配置

演示如何创建或编辑服务配置。

创建或编辑客户端配置

演示如何创建或编辑客户端配置。

编辑绑定配置

演示如何配置终结点上的绑定。

编辑诊断配置

演示如何开关性能计数器、启用或禁用 Windows Management Instrumentation (WMI)、配置 WCF 跟踪以及配置 WCF 消息日志记录。

编辑行为配置

演示如何配置终结点和服务的行为。

管理扩展

演示如何注册行为扩展。


打开配置文件

使用服务配置编辑器 (SvcConfigEditor) 可以管理现有 Windows Communication Foundation (WCF) 配置文件的设置，以及可执行文件、COM+ 服务和 Web 承载的服务的设置。

SvcConfigEditor 接受任何符合 System.Configuration 架构的配置文件。可以直接定位到现有配置文件，或者可选择包含服务、虚拟目录或 COM+ 服务的程序集。

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

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

  • 树视图窗格，在左侧以树状结构显示配置元素。右击节点可在树中执行操作。

  • 任务窗格，在窗口的左下方显示了当前元素的常见任务。

  • 详细信息窗格，在右侧显示了树视图中所选配置节点的详细设置。

打开配置文件

打开配置文件

  1. 使用命令窗口定位到 C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\，然后键入 SvcConfigEditor.exe，以启动 SvcConfigEditor。

  2. 从“文件”菜单中，选择“打开”，然后单击要管理的文件类型。可以直接打开配置文件、浏览 WCF /COM+ 服务，以及打开 Web 承载的服务的配置文件。

  3. 在“打开”对话框中，定位到要管理的特定文件，然后双击该文件。
注意：
该编辑器只操作配置文件的 System.ServiceModel 节。它不会修改配置文件中存在的任何其他配置节。

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

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


创建或编辑服务配置

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

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

创建新的服务配置

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

  • 使用向导创建：单击“任务窗格”或“摘要页”上的“新建服务…”链接启动向导。在“文件”菜单 ->“添加新项目”中也可进行此操作。

  • 手动创建：可右击“服务”节点，然后选择“新建服务”。

创建新的服务终结点配置

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

  • 使用向导创建：单击“任务窗格”或“摘要页”上的“新建服务终结点…”链接启动向导。在“文件”菜单 ->“添加新项目”中也可进行此操作。

  • 手动创建：创建好服务之后，可右击“终结点”节点，然后选择“新建服务终结点”。

编辑服务配置

编辑服务配置

  1. 单击“服务”节点。

  2. 在属性网格中编辑设置。

编辑服务终结点配置

编辑服务终结点配置

  1. 单击“服务终结点”节点。

  2. 在属性网格中编辑设置。

添加基址

添加基址

  1. 单击“主机”节点。

  2. 单击“基址”部分中的“新建…”按钮。

  3. 在对话框中输入基址 URI。

  4. 单击“确定”。
警告：
无法在此工具中编辑 <baseAddressPrefixFilters> 的值。若要添加或修改此元素，应使用文本编辑器或 Visual Studio。


创建或编辑客户端配置

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

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

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

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

  • 使用向导创建：单击“任务窗格”或“摘要页”上的“新建客户端…”链接启动向导。在“文件”菜单 ->“添加新项目”中也可进行此操作。

  • 手动创建：右击“客户端”下的“终结点”节点，然后选择“新建客户端终结点”。

编辑客户端终结点配置

编辑客户端终结点配置

  1. 单击“客户端终结点”节点。

  2. 在属性网格中编辑设置。


创建或编辑标准终结点配置

标准终结点是一种专门的终结点，其地址、协定和绑定中的一个或多个方面已设置为默认值。

此类配置设置存储在“标准终结点”节点中。“标准终结点”节点显示了配置文件中的所有标准终结点设置。树中的每一个子节点对应于配置文件中 <standardEndpoints> 元素的一个子元素。

单击“标准终结点”节点后，可在“详细信息窗格”中的标准终结点“摘要页”上查看或执行基本任务。

创建新的标准终结点配置

可按下列方法创建新的标准终结点配置。

  • 右击“标准终结点”节点并选择“新建标准终结点配置…”。在对话框中选择绑定类型，然后单击“确定”。

  • 选择“标准终结点”节点并单击窗口左下方“任务窗格”中的“新建标准终结点配置…”。

将显示“创建新的标准终结点”对话框，并列出所有已注册的标准终结点类型。

查看和编辑标准终结点配置

可按下列方法打开标准终结点配置以供查看和编辑。

  • 单击以展开“标准终结点”节点并单击相应的终结点子节点。

  • 单击“标准终结点”节点并单击“详细信息”窗格中相应的终结点子节点。

终结点的特性将显示在右侧窗格中以供编辑。

删除标准终结点配置

可按下列方法删除标准终结点配置。

  • 单击以展开“标准终结点”节点并右击相应的终结点子节点。使用上下文命令“删除标准终结点配置”来删除终结点。

  • 单击“标准终结点”节点。在“任务”窗格中，单击“删除标准终结点配置”。

如果标准终结点正被使用，则在尝试删除时将显示一条警报消息。该警报为“该标准终结点正被使用。如果现在删除，请确保删除其他配置部分中(例如，从服务终结点或客户端终结点中) 对该标准终结点的所有引用。否则，配置将无效，并且下次将无法打开。是否确实要删除该标准终结点?”。


编辑绑定配置

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

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

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

创建新的绑定配置

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

  • 右击“绑定”节点，然后选择“新建绑定配置…”。在对话框中选择绑定类型，然后单击“确定”。

  • 选择“绑定”节点，然后单击“任务窗格”中的“新建绑定配置…”。

  • 在服务或客户端摘要页上，单击“绑定配置”字段中的“单击可创建”以创建对应终结点的绑定配置。

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

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

  1. 选择要向其添加扩展元素的绑定。

  2. 单击“添加”。

  3. 从可用扩展列表中，选择要添加的绑定元素扩展。按住 Ctrl 键的同时进行选择可选择多项。

  4. 单击“添加”。

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

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

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

  1. 选择自定义绑定节点。

  2. 在“绑定元素扩展位置”部分中选择一个绑定扩展元素。

  3. 使用列表左侧的“上移”或“下移”按钮更改所选元素的位置。

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

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

  1. 选择树中的绑定节点。

  2. 选择包含要编辑的元素的自定义绑定。

  3. 选择要编辑的绑定元素扩展。该元素的设置将出现在右窗格中，可在其中编辑这些设置。


编辑诊断配置

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

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

配置性能计数器和 WMI

配置性能计数器和 WMI

  1. 单击“诊断”节点。

  2. 单击“切换性能计数器”。性能计数器有三种状态：Off（默认）、ServiceOnly 和 All。单击链接可在这三种状态之间切换设置。

配置 WMI 提供程序

配置 WMI 提供程序

  1. 单击“诊断”节点。

  2. 若要启用 WMI 提供程序，请单击“启用 WMI 提供程序”链接。

启用 WCF 跟踪

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

启用 WCF 跟踪

  1. 单击“诊断”节点。

  2. 单击“启用跟踪”。

  3. 单击“跟踪级别”链接调整跟踪级别。有六种跟踪级别：“禁用”、“严重”、“错误”、“警告”、“信息”和“详细”。“活动跟踪”和“传播活动”选项使您能使用 WCF 活动跟踪功能。

  4. 单击跟踪侦听器名称指定跟踪文件和选项。

启用 WCF 日志记录

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

启用 WCF 日志记录

  1. 单击“诊断”节点。

  2. 单击“启用消息日志记录”

  3. 单击“日志级别”链接调整日志级别。有 3 种日志级别：“格式错误”、“服务”和“传输”。

  4. 单击侦听器名称指定日志文件和选项。
注意：
如果要在应用程序关闭时自动刷新跟踪和消息日志，请启用“自动刷新”选项。

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

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

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

  1. 单击“诊断”节点，然后将其展开。

  2. 右击“侦听器”节点，然后选择“新建侦听器”。

  3. 在“InitData”字段中，输入跟踪文件名。可单击“…”按钮通过浏览找到路径。

  4. 单击“TypeName”行将显示“…”按钮。单击此按钮打开“跟踪侦听器类型浏览器”，可使用该浏览器查找已经安装的预配置跟踪侦听器。

  5. 请注意“源”部分。单击此部分中的“添加”打开带有下拉菜单的对话框，该菜单中列出了可用的跟踪源。选择一个跟踪源，然后单击“确定”。

  6. 若要编辑“消息日志记录”设置，请单击“消息日志记录”节点。可在属性网格中编辑这些设置。


编辑行为配置

“行为”选项卡显示了配置文件中当前定义的行为。

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

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

创建新的行为配置

可按下列方法创建新的行为配置：

  • 右击某个行为节点，然后选择“新建行为配置…”。…

  • 选择某个行为节点，然后单击“任务窗格”中的“新建行为配置…”。

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

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

  1. 选择一个行为节点。

  2. 选择要编辑的行为。

  3. 单击“添加”。

  4. 从可用扩展列表中，选择要添加的行为元素扩展。

  5. 单击“添加”。

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

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

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

  1. 选择一个行为节点。

  2. 选择要编辑的行为。

  3. 在“行为元素扩展位置”部分中选择一个行为扩展元素。

  4. 使用列表左侧的“上移”或“下移”按钮更改所选元素的位置。

编辑行为元素扩展的配置

编辑行为元素扩展的配置

  1. 选择树中的一个行为节点。

  2. 选择包含要编辑的元素的行为。

  3. 选择要编辑的行为元素扩展。该元素的设置将出现在右窗格中，可在其中编辑这些设置。


创建或编辑协议映射

使用 ProtocolMapping 节，可以通过协议地址方案和可能的绑定之间已定义的映射，来设置不同协议（如 http、tcp、MSMQ 或 net.pipe）的默认绑定类型。还可以添加对其他协议的新映射。


管理扩展

可注册新的绑定扩展、绑定元素扩展、标准终结点扩展和行为扩展以在 WCF 配置中使用。扩展是名称/类型对。名称定义扩展在配置中的名称，而类型则实现该扩展。有四种类型的扩展：

  • 绑定扩展定义整个绑定类型。示例：basicHttpBinding。

  • 绑定元素扩展定义绑定的元素。示例：textMessageEncoding。

  • 标准终结点扩展定义整个标准终结点。示例：discoveryEndpoint。

  • 行为元素扩展定义行为的元素。示例：clientVia。

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

添加新扩展

添加新扩展

  1. 选择高级节点中的某个扩展节点。

  2. 单击“新建”。

  3. 输入名称和类型。

  4. 单击“确定”。

  5. 扩展现在出现在编辑器中的适当位置。例如，如果添加了行为元素扩展，它将出现在可用扩展的列表中。


创建或编辑宿主环境

本节介绍如何为服务主机环境定义实例化设置。

使用向导创建配置文件

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

创建配置文件

创建配置文件

  1. 使用命令窗口定位到 WCF 安装位置，然后键入 SvcConfigEditor.exe，以启动服务配置编辑器。

  2. 从“文件”菜单上选择“打开”，然后根据要创建的配置文件的类型单击“可执行文件”、“COM+ 服务”或“WebHosted 服务”。

  3. 在“打开”对话框中，定位到要为其创建配置文件的特定文件，然后双击它。

  4. 在“文件”菜单中，指向“添加新项目”，然后单击“服务”。“新建服务元素向导”随即打开。

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


创建新配置文件

若要创建新的配置文件，请使用“新建服务元素向导”。该向导查找计算机上已安装的服务类型以及其他与 Windows Communication Foundation (WCF) 兼容的元素（包括 COM+ 和 Web 承载的虚拟目录），并预加载它们以方便创建配置。

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

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

创建配置文件

创建配置文件

  1. 使用命令窗口定位到 WCF 安装位置，然后键入 SvcConfigEditor.exe，以启动“服务配置编辑器”(SvcConfigEditor)。

  2. 从“文件”菜单上选择“打开”，然后根据要创建的配置文件的类型单击“可执行文件”、“COM+ 服务”或“WebHosted 服务”。

  3. 在“打开”对话框中，定位到要为其创建配置文件的特定文件，然后双击它。

  4. 在“文件”菜单中，指向“添加新项目”，然后单击“服务”。“新建服务元素向导”随即打开。

  5. 按照向导中的步骤创建新服务。

配置 COM+

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

创建新的 COM+ 配置

  1. 创建新的 COM+ 配置之前，请确保您的 COM+ 应用程序已安装在 Component Services 中，并已在全局程序集缓存 (GAC) 中注册。

  2. 选择“文件”菜单 ->“集成”->“COM+ 应用程序”。此操作将关闭当前打开的文件。如果当前文件中有未保存的数据，将显示“保存”对话框。“COM+ 集成向导”随后启动。

  3. 在第一页中，从树中选择 COM+ 应用程序。如果在树中找不到您的 COM+ 应用程序，请验证它是否已安装在 Component Services 中，并已在全局程序集缓存 (GAC) 中注册。

  4. 在下一页中，选择将要哪个（哪些）方法公开为 WCF 服务。默认情况下，COM+ 应用程序中支持的所有方法都将显示并被选中。

  5. 选择宿主方法。

  6. 根据向导中的指导配置其他设置。

  7. SvcConfigEditor 在后台利用 ComSvcConfig.exe 来生成配置文件。此操作完成后，可查看摘要，然后退出向导。生成的配置文件将打开，您可以直接进行编辑。

编辑现有 COM+ 配置

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

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

  3. 编辑“COM 约定”节点中的配置设置。
注意：
也可以直接打开并编辑包含 COM+ 约定的配置文件。


服务配置编辑器资源

有关 Windows Communication Foundation (WCF) 配置的更多信息，请参见以下资源：

  • MSDN 网站上的 Windows Communication Foundation。

  • Windows Communication Foundation Configuration Schema（Windows Communication Foundation 配置架构），这是所有 WCF 配置元素的常规参考。

  • MSDN Library 中的 Introduction to Building Windows Communication Foundation Services（构建 Windows Communication Foundation 服务简介）。

  • MSDN Library 中的 Class Library documentation for the .NET System.Diagnostics namespace（.NET System.Diagnostics 命名空间的类库文档）。