WCF中,通过C#代码或App.config配置文件创建ServiceHost类
C#
static void Main(string[] args) { //创建宿主的基地址 Uri baseAddress = new Uri("http://localhost:8080/User"); //创建宿主 using (ServiceHost host = new ServiceHost(typeof(User), baseAddress)) { host.AddServiceEndpoint(typeof(IUser), new WSHttpBinding(), ""); //将HttpGetEnabled属性设置为true ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); smb.HttpGetEnabled = true; //将行为添加到Behaviors中 host.Description.Behaviors.Add(smb); //打开宿主 host.Open(); Console.WriteLine("WCF中的HTTP监听已启动...."); Console.ReadLine(); host.Close(); } }
App.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service name="WCFLibrary.User"> <host> <baseAddresses> <add baseAddress="http://localhost:8080/User"/> </baseAddresses> </host> <endpoint address="" binding="wsHttpBinding" contract="WCFLibrary.IUser"></endpoint> </service> </services> <behaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="True"/> <serviceDebug includeExceptionDetailInFaults="False"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration>
public partial class MainForm : Form { ServiceHost host; public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { host = new ServiceHost(typeof(User)); //打开宿主 host.Open(); this.label1.Text = "WCF中的HTTP监听已启动...."; } private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { host.Close(); } }
作者:陈哲Gilbert
出处:http://gilbert.cnblogs.com
版权声明:
本文版权归作者所有,欢迎转载,请在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。