如何:使用 Svcutil.exe 下载元数据文档
您可以使用 Svcutil.exe 从正在运行的服务中下载元数据并将元数据保存到本地文件。 对于 HTTP 和 HTTPS URL 架构,Svcutil.exe 会尝试使用 WS-MetadataExchange 和 XML Web 服务发现检索元数据。 对于所有其他 URL 架构,Svcutil.exe 仅使用 WS-MetadataExchange。
默认情况下,Svcutil.exe 使用 MetadataExchangeBindings 类中定义的绑定。 若要配置用于 WS-MetadataExchange 的绑定,必须在 Svcutil.exe 的配置文件 (svcutil.exe.config) 中定义一个客户端终结点,使该终结点使用 IMetadataExchange
约定,并具有与元数据终结点地址的统一资源标识符 (URI) 架构相同的名称。
注意
当运行 Svcutil.exe 以获取公开两个不同服务协定(两个服务协定包含具有相同名称的操作)的服务的元数据时,Svcutil.exe 将显示一条错误消息“无法从 .... 获取元数据”。例如,如果有一个服务公开了一个名为 ICarService
的服务协定,该服务协定具有一个 Get(Car c)
操作,且同一服务还公开了一个名为 IBookService
的服务协定,该服务协定具有一个 Get(Book b)
操作。 要解决此问题,请执行以下操作之一:
使用 Svcutil.exe 下载元数据
在以下位置找到 Svcutil.exe 工具:
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
在命令提示符处,使用下面的格式启动该工具。
svcutil.exe /t:metadata <url>* | <epr>
您必须指定
/t:metadata
选项才能下载元数据。 否则,会生成客户端代码和配置。<url>
参数指定到提供元数据的服务终结点或到在线托管的元数据文档的 URL。<epr>
参数指定到 XML 文件的路径,该文件包含支持 WS-MetadataExchange 的服务终结点的 WS-AddressingEndpointAddress
。
有关使用此工具进行元数据下载的更多选项,请参阅 ServiceModel 元数据实用工具 (Svcutil.exe)。
示例
下面的命令从正在运行的服务中下载元数据文档。
svcutil /t:metadata http://service/metadataEndpoint