导出 (0) 打印
全部展开

如何:显示元数据终结点

更新时间: 2014年6月

Microsoft Azure Service Bus 元数据终结点是一个 URI,可公开有关服务或客户端应用程序的其他信息。例如,Svcutil.exe 工具可使用服务中的已公开元数据生成一份约定,使得开发人员能够访问该服务。如果没有元数据,开发人员将不得不以其他方式来访问该约定,例如直接通过电子邮件请求创建者提供该约定的副本。请注意,没有元数据,你仍可以实现接口: 元数据可让你轻松获取约定(如果你还没有获得该约定)。另请注意,公开元数据终结点不同于将接口发布到 ATOM 源:元数据终结点包含与约定有关的其他信息,而发布到 ATOM 源只是列出公开访问的数据库中的服务 URI。

下面是一个简化过程,用于在使用 Service Bus 的应用程序上公开元数据。 有关元数据的完整讨论,请参阅 Windows Communication Foundation (WCF) 文档中的Metadata Architecture Overview

  1. 在主机应用程序的 App.config 文件中,将元数据终结点定义添加到服务配置信息中。

    <services>
      <service name="Service.EchoService">
        <endpoint name="RelayEndpoint"
                  ... />
    
        <endpoint name="MexEndpoint" contract="IMetadataExchange" binding="netTcpRelayBinding" bindingConfiguration="default" address="mex" />
    
      </service>
    </services>
    
    
  2. 要添加发布到服务的元数据,请修改应用程序配置信息,使之包括附加的 behaviors 部分。

    <system.serviceModel>
      ...
      <behaviors>
        <endpointBehaviors>
          ...
        <endpointBehaviors>
    
        <serviceBehaviors><behavior name="serviceMetadata"><serviceMetadata /></behavior></serviceBehaviors>
    
      </behaviors>
    
    </system.serviceModel>
    
    
  3. 通过在服务定义中指定 behaviorConfiguration 属性,将元数据行为添加到服务。

    <services>
      <service name="Service.EchoService" behaviorConfiguration="serviceMetadata">
        ...
      </service>
    </services>
    
    
    Warning警告
    如果元数据终结点是使用与服务终结点不同的端到端安全模式指定的,并且在与服务终结点共享同一基址的同时使用相对地址,则当用户打开服务主机时,将引发 System.ArgumentException 类型的异常。该异常附带以下错误消息:通道侦听器设置不兼容。要解决此问题,请执行下列解决方法之一:

    • 将元数据终结点地址指定为完全限定地址。

    • 如果要对与服务终结点共享基址的元数据终结点使用相对地址,请为元数据终结点和服务终结点指定相同的端到端安全模式。

    • 对元数据终结点使用相对地址时,请使用不同于服务终结点基址的基址。

显示:
© 2014 Microsoft