wcf可以分为服务端和客户端,在初始化学习需要我们把这两种应用程序都创建在解决方案中;
1.在解决方案中创建新建项目->wcf->wcf服务项目(services);
在解决方案中创建网站项目->wcf服务项目(分别删除项目文件夹中"AppCode"的文件)-这个项目我称为"client";
2.在client项目中我们添加对"services"项目的dll引用.
选择client项目中的web.config右键选择"编辑WCF配置",创建服务宿主引用;
引用添加完成,在找到client程序中的".svc"的文件如:Service.svc,配置成如下所示
<%@ ServiceClient Language="C#" Debug="true" Service="RoomReservice.RoomService" %>
Service:原始的服务类型;
选择client项目,按f4进入到属性配置,配置虚拟路径为"/";
3.这些步骤操作完了就可以直接在client项目中选择.svc预览了.预览成功就会看到像WebService的引用地址
4.其他项目调用就直接调用client的.svc路径.在其他项目中调用写如下代码
//绑定模式为基本http模式
Binding binding = new BasicHttpBinding();
//终结点地址
EndpointAddress endPoint = new EndpointAddress("http://localhost:2499/Service.svc");
//设置终结点,包括模式和地址
RoomServiceClient client = new RoomServiceClient(binding, endPoint);
var msg = client.GetReserveRoom();
Console.WriteLine(msg);
直接对服务(services)添加引用,不使用client项目过度.
//绑定模式为基本WS模式
var client = new WSHttpBinding();
var address = new EndpointAddress("http://localhost:2499/RoomService.svc");
var factory = new ChannelFactory
IRoomService chanel = factory.CreateChannel();
var msg = client.GetReserveRoom();
Console.WriteLine(msg);
5.如遇到部署到IIS不能访问,则需要具体原因具体分析.我遇到的错误是:"加载类型“System.ServiceModel.Activation.HttpModule”。错误 "
解决方法:如上错误,使用命令:c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru
以上都是参考其他网站提供的资料,然后在进行个人总结适用于本人理解,如有相同之处还望见谅~~~~