zoukankan      html  css  js  c++  java
  • [Programming WCF Services]Chapter 1. WCF Essentials

    1.HTTP-GET WCF 方式

    通过Http的方式提供metadata

    1.1.配置文件方式

    <system.serviceModel>
      <services>
        <service name = "MyService" behaviorConfiguration = "MEXGET">
          <host>
            <baseAddresses>
              <add baseAddress = "http://localhost:8000/"/>
            </baseAddresses>
          </host>
          ...
        </service>
    
        <service name = "MyOtherService" behaviorConfiguration = "MEXGET">
          <host>
            <baseAddresses>
              <add baseAddress = "http://localhost:8001/"/>
            </baseAddresses>
          </host>
          ...
        </service>
      </services>
      <behaviors>
        <serviceBehaviors>
          <behavior name = "MEXGET">
            <serviceMetadata httpGetEnabled = "true"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
    </system.serviceModel>

     一般通过HTTP的基地址即可以访问元数据,也可以指定不同的地址:

    <behavior name = "MEXGET">
      <serviceMetadata httpGetEnabled = "true" httpGetUrl = "MyMEXAddress"/>
    </behavior>

    1.2.代码方式

    ServiceHost host = new ServiceHost(typeof(MyService));
    ServiceMetadataBehavior metadataBehavior;
    metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
    if(metadataBehavior == null)
    {
    Debug.Assert(BaseAddresses.Any(baseAddress=>baseAddress.Uri.Scheme == "http"));
    metadataBehavior = new ServiceMetadataBehavior();
    metadataBehavior.HttpGetEnabled = true;
    host.Description.Behaviors.Add(metadataBehavior);
    }
    host.Open();

    2.Metadata Exchange Endpoint

    平台无关的元数据交换方式,支持多种协议

    <services>
      <service name = "MyService" behaviorConfiguration = "MEX">
        <host>
          <baseAddresses>
            <add baseAddress = "net.tcp://localhost:8001/"/>
            <add baseAddress = "net.pipe://localhost/"/>
          </baseAddresses>
        </host>
        <endpoint
        address = "MEX"
        binding = "mexTcpBinding"
        contract = "IMetadataExchange"
    />
        <endpoint
        address = "MEX"
        binding = "mexNamedPipeBinding"
        contract = "IMetadataExchange"
    />
        <endpoint
        address = "http://localhost:8000/MEX"
        binding = "mexHttpBinding"
        contract = "IMetadataExchange"
    />
        ...
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name = "MEX">
          <serviceMetadata/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  • 相关阅读:
    寒假自学1.18
    寒假自学笔记1.17
    寒假自学1.16
    寒假自学1.15
    寒假自学1.14
    寒假自学1.13
    寒假自学1.12
    CSS position 属性
    node 获取客户端请求 服务器响应客户端 页面显示客户端想要的格式
    使用 npm 安 装node_modules 总是提示报错
  • 原文地址:https://www.cnblogs.com/vicsmb/p/5248799.html
Copyright © 2011-2022 走看看