//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(); }