现在的位置: 首页 > 综合 > 正文

[WCF] Metadata Exchange

2012年08月06日 ⁄ 综合 ⁄ 共 1253字 ⁄ 字号 评论关闭

WCF 服务可以通过两种途径发布他们的元数据,这些元数据可以通过
HTTP-GET 传送或者直接通过 Endpoint 发布。如果通过 HTTP-GET 来发布元数据,你所要做的只是在配置文件中为
service 节点添加 behaviorConfiguration 属性并激活 HTTP-GET 而已。(完整的配置文件样例可以参考
http://www.cnblogs.com/anders-x-hu/archive/2007/05/30/765449.html

 

编程控制元数据

using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;

namespace Anrs.Service
{
    
class Program
    {
        
static void Main(string[] args)
        {
            ServiceHost             sh            
= new ServiceHost(typeof(AnrsService));
            ServiceMetadataBehavior metadata      
= sh.Description.Behaviors.Find<ServiceMetadataBehavior>();
            Binding                 wsHttpBinding 
= new WSHttpBinding();

            if (metadata == null)
            {
                metadata                
= new ServiceMetadataBehavior();
                metadata.HttpGetEnabled 
= true;

                sh.Description.Behaviors.Add(metadata);
            }

            sh.AddServiceEndpoint(typeof(IAnrsServiceContract1), wsHttpBinding, new Uri("http://localhost:8086/AnrsService/"));
            sh.Open();            

            Console.Write("Press any key to exit");
            Console.ReadLine();

            sh.Close();
        }
    }
}

再次证明 WCF 并不是 Programming 的创新,更多的是概念方面的创新。

抱歉!评论已关闭.