Пример #1
0
        //static void Main(string[] args)
        //{
        //    ServiceHost host = new ServiceHost(typeof(Services.MyService));
        //    //ServiceMetadataBehavior metadataBehavior;
        //    //metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
        //    //if (metadataBehavior == null)
        //    //{
        //    //    Debug.Assert(false, "metadataBehavior == null");
        //    //    metadataBehavior = new ServiceMetadataBehavior();
        //    //    metadataBehavior.HttpGetEnabled = true;
        //    //    host.Description.Behaviors.Add(metadataBehavior);
        //    //}
        //    //2.启动
        //    host.Open();
        //    //3.打印Endpoint
        //    Console.ForegroundColor = ConsoleColor.Yellow;
        //    foreach (var item in host.Description.Endpoints)
        //    {
        //        Console.WriteLine("终结点地址:" + item.Address);
        //    }
        //    //阻塞当前线程
        //    Console.WriteLine("服务已经启动。。。");
        //    Console.Read();
        //}
        //以编程方式添加TCP元数据终结点
        //static void Main(string[] args)
        //{
        //    ServiceHost host = new ServiceHost(typeof(Services.MyService));
        //    Uri tapBaseAddress = new Uri("net.tcp://localhost:8001/");
        //    ServiceMetadataBehavior metadataBehavior;
        //    metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
        //    if (metadataBehavior == null)
        //    {
        //        Debug.Assert(false, "metadataBehavior == null");
        //        metadataBehavior = new ServiceMetadataBehavior();
        //        host.Description.Behaviors.Add(metadataBehavior);
        //    }
        //    Binding binding = MetadataExchangeBindings.CreateMexTcpBinding();
        //    host.AddServiceEndpoint(typeof(IMetadataExchange), binding, "MexByProgram");
        //    //2.启动
        //    host.Open();
        //    //3.打印Endpoint
        //    Console.ForegroundColor = ConsoleColor.Yellow;
        //    foreach (var item in host.Description.Endpoints)
        //    {
        //        Console.WriteLine("终结点地址:" + item.Address);
        //    }
        //    foreach (var item in host.BaseAddresses)
        //        Console.WriteLine(item.Scheme);
        //    //阻塞当前线程
        //    Console.WriteLine("服务已经启动。。。");
        //    Console.Read();
        //}
        //使用ServiceHost<T>简化代码
        static void Main(string[] args)
        {
            ServiceHost<Services.MyService> host = new ServiceHost<Services.MyService>();
            host.EnableMetadataExchange(true);

            //2.启动
            host.Open();
            //3.打印Endpoint
            Console.ForegroundColor = ConsoleColor.Yellow;
            foreach (var item in host.Description.Endpoints)
            {
                Console.WriteLine("终结点地址:" + item.Address);
            }

            foreach (var item in host.BaseAddresses)
                Console.WriteLine(item.Scheme);
            //阻塞当前线程
            Console.WriteLine("服务已经启动。。。");
            Console.Read();
        }