一、Host
新建一个WinForm项目,添加两按钮,将上文编译的Dll复制到合适位置,添加引用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Host
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ServiceHost m_Host = null;
private void btnStart_Click(object sender, EventArgs e)
{
if (m_Host == null)
{
m_Host = new ServiceHost(typeof(WcfService3_test_ajax.TaskInfo));
System.ServiceModel.Channels.Binding httpbinding = new BasicHttpBinding();
m_Host.AddServiceEndpoint(typeof(WcfService3_test_ajax.ITaskInfo), httpbinding, "http://localhost:8002"); //注意这里要用ITaskInfo它有ServiceContract
if (m_Host.Description.Behaviors.Find<System.ServiceModel.Description.ServiceMetadataBehavior>() == null)
{
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
behavior.HttpGetUrl = new Uri("http://localhost:8002/TaskInfo");
m_Host.Description.Behaviors.Add(behavior);
m_Host.Open();
MessageBox.Show("OK");
}
}
}
private void btnClose_Click(object sender, EventArgs e)
{
this.m_Host.Close();
}
}
}
二、Client
启动上一HOST,记下地址
http://localhost:8002/TaskInfo
,新建一个WinForm项目,添加一按钮,添加服务引用
然后
private void button1_Click(object sender, EventArgs e)
{
using (ServiceReference1.TaskInfoClient sc = new ServiceReference1.TaskInfoClient())
{
sc.Open();
MessageBox.Show(sc.Json());
sc.Close();
}
}
就好了