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