如何做到不安装iis的情况下,
实现客户端与服务器的数据交互?
业务背景:
1、省了销售人员或者客服人员需要在客户端配置iis问题、发布站点操作
2、后期为实现单机板客服端也能较为快捷方便
服务端:
首先我们需要创建WCF服务库
默认的服务库中已有Service(实现类)与IService (接口类)
顾名思义,实现类是处理逻辑使用,接口类是提供给外部调用的类
重点:
1、创建服务托管类,创建个静态无返回值Main方法(此方法名固定不变)
2、引用System.ServiceModel
3、创建服务主机类ServiceHost对象host(此处需注意的是ServiceHost没有无参的构造函数,所以我们需要在其方法中配置参数,参数1:服务类是哪个,例如: typeof(Service1),参数2:地址配置(不传也可),在app.config已默认配置,例如:<add baseAddress = "http://192.168.1.120:8733/Design_Time_Addresses/WCFtest2/Service1/" />),端口默认配置,请勿擅自修改,避免出错。
4、开启主机环境host.Open();
5 阻止主机关闭Console.ReadKey();
做完以上操作后右击类库->属性->应用程序->输出类型,选择为控制台应用程序
保存,重新生成即可
最后:在服务器里配置此exe文件,双击运行即可
后期操作:
<behaviors>
<serviceBehaviors>
<behavior>
<!-- 为避免泄漏元数据信息,
请在部署前将以下值设置为 false -->
<serviceMetadata httpGetEnabled="True"/>
<!-- 要接收故障异常详细信息以进行调试,
请将以下值设置为 true。在部署前设置为 false
以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
其实代码就:
using System.ServiceModel;
public class 服务托管类
{
static void Main(){
using (ServiceHost host = new ServiceHost(typeof(Service1))){
//开启主机环境
host.Open();
Console.WriteLine("s1启动");
Console.ReadKey();
}
}
}