建立宿主
- 在解决方案下新建Winform项目“WCFIIS”
- 添加 System.ServiceModel.dll 的引用
- 添加 WCF 服务类库(WCFLibrary)的项目引用
- 创建宿主程序
public WCFService()
{
InitializeComponent();
toolStripStatusLabel1.Text = "WCF服务未开启!";
}
ServiceHost host = null;
private void StartBtn_Click(object sender, EventArgs e)
{
//创建宿主的基地址
Uri uri = new Uri("http://192.168.0.102:4455/CalcService");
//创建宿主
using (host=new ServiceHost(typeof(CalcService),uri))
{
//向宿主中添加终结点
host.AddServiceEndpoint(typeof(ICalcService),new WSHttpBinding(),"");
//将HTTPGetEnable属性设置为true
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
//添加行为到宿主的Behaviors里面
host.Description.Behaviors.Add(behavior);
//打开宿主
host.Open();
toolStripStatusLabel1.Text = "WCF服务启动成功!";
}
}
private void CloseBtn_Click(object sender, EventArgs e)
{
if (host==null)
{
return;
}
host.Close();
host = null;
toolStripStatusLabel1.Text = "WCF服务已关闭!";
}
}
5.开启时必须使用管理特权来运行承载 WCF 服务的进程,如果从 Visual Studio 2019内运行服务,则必须以管理员身份运行 Visual Studio 2019。
说明宿主建立成功。在上例中用到"ServiceHost"类,这里只是简单的应用,具体请查看