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