Visual Studio2017,使用IIS托管。文中涉及一些WCF的基本概念,e.g.服务契约、托管等。可以先阅读《WCF服务编程》第一章。


1.新建一个WCF服务库(WCF Service Library)

有两个默认的文件:IService1.cs和Service1.cs

IService.cs中定义了服务契约和数据契约。服务契约中定义了两个操作契约,在本demo中我们仅使用第一个,所以我就把第二个注释掉了。因为也没使用到数据契约,因此把数据契约也注释掉了。

Service.cs实现了IService接口。
 
2.服务创建好了之后,需要把服务托管起来,客户端才能使用该服务。WCF提供的三种托管服务的方式:IIS,自托管和WAS。在本demo中我们使用IIS。先确认系统已经配置了IIS。打开控制面板-程序-打开或关闭Windows功能,确认Internet信息服务这项已经选中。然后在开始菜单栏中,输入“IIS”就可以打开IIS管理器了。

右键“网站”,选择“添加网站”

添加好网页后,开启“目录浏览”。双击“目录浏览”,选择启用。

配置一下应用池,否则会容易出现应用池版本低而报错的情况。

 
3.回到Visual Studio,修改App.config配置文件,主要是修改基地址,然后右键发布服务,选择刚刚添加的网页。
已经将Service1托管到IIS中了

 
4.创建客户端(本demo使用控制台应用),获取服务。
右键引用,添加服务引用。

program.cs代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Client
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. using (ServiceReference1.Service1Client client = new ServiceReference1.Service1Client())
  14. {
  15. Console.WriteLine("-----------------------Begin-------------------------");
  16. Console.WriteLine(client.GetData(3));
  17. Console.WriteLine("-----------------------End---------------------------");
  18. }
  19. Console.Read();
  20. }
  21. }
  22. }

运行结果:

参考文献:

https://www.cnblogs.com/xinhaijulan/archive/2010/11/14/1876989.html

https://www.cnblogs.com/buchizaodian/p/9945170.html

《WCF服务编程》

WCF学习笔记——Day1:一个WCF demo的更多相关文章

  1. WCF学习笔记(1)——Hello WCF

    1.什么是WCF Windows Communication Foundation(WCF)是一个面向服务(SOA)的通讯框架,作为.NET Framework 3.0的重要组成部分于2006年正式发 ...

  2. WCF学习笔记(1)-一个完整的例子

    一.开发环境 IDE:VS2013 OS:Win10 IIS:IIS 10 二.开发流程 1.项目结构 2.添加一个WCF程序 3.删除系统自动生成的两个文件IService1.cs和Service1 ...

  3. [WCF学习笔记] 我的WCF之旅(1):创建一个简单的WCF程序

    近日学习WCF,找了很多资料,终于找到了Artech这个不错的系列.希望能从中有所收获. 本文用于记录在学习和实践WCF过程中遇到的各种基础问题以及解决方法,以供日后回顾翻阅.可能这些问题都很基础,可 ...

  4. WCF学习笔记之事务编程

    WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...

  5. WCF学习笔记之传输安全

    WCF学习笔记之传输安全 最近学习[WCF全面解析]下册的知识,针对传输安全的内容做一个简单的记录,这边只是简单的记录一些要点:本文的内容均来自[WCF全面解析]下册: WCF的传输安全主要涉及认证. ...

  6. WCF 学习笔记之异常处理

    WCF 学习笔记之异常处理 1:WCF异常在配置文件 <configuration> <system.serviceModel> <behaviors> <s ...

  7. WCF 学习笔记之双工实现

    WCF 学习笔记之双工实现 其中 Client 和Service为控制台程序 Service.Interface为类库 首先了解契约Interface两个接口 using System.Service ...

  8. 多线程编程学习笔记——异步调用WCF服务

    接上文 多线程编程学习笔记——使用异步IO 接上文 多线程编程学习笔记——编写一个异步的HTTP服务器和客户端 接上文 多线程编程学习笔记——异步操作数据库 本示例描述了如何创建一个WCF服务,并宿主 ...

  9. OpenCV图像处理学习笔记-Day1

    OpenCV图像处理学习笔记-Day1 目录 OpenCV图像处理学习笔记-Day1 第1课:图像读入.显示和保存 1. 读入图像 2. 显示图像 3. 保存图像 第2课:图像处理入门基础 1. 基本 ...

随机推荐

  1. Qt之进入和出去和关闭事件

    widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QEvent> class Wi ...

  2. go get失败解决办法

    go get时由于防火墙的原因,会导致失败.目前可以通过修改GOPROXY的方法解决该问题. 无论是在win下还是linux,macos下,只需要将环境变量GOPROXY设置成https://gopr ...

  3. 使用ansible 批量分发ssh密钥

    先看执行结果 看看ssh.yml怎么写的 看看hosts文件中backup组怎么写的

  4. 一:linux安装nginx

    目录 1.yun安装 2.二进制安装 3.编译安装 1.yun安装 nginx官网:https://nginx.org/ [root@web01 ~]# vim /etc/yum.repos.d/ng ...

  5. 学习JAVAWEB第八天

    1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 * 如: html,c ...

  6. PostgreSQL逻辑订阅

    测试环境:PostgreSQL 13.2 1.逻辑订阅简介 由于物理复制只能做到这个集群的复制,不能正对某个对象(表)进行复制,且物理复制的备库只能读,不能写.相反,逻辑订阅同时支持主备库读写,且可以 ...

  7. C编译器中“不是所有的控件路径都返回值”报错

    编译器的判断逻辑是是否在所有的分支中都返回了值,即if不成立时也必须返回值.编译器认为如果三个if都不成立则此函数可能没有返回值,故报错.需要将第三个if改为else或者去掉if体直接return.

  8. 配置phpmemcache扩展,Loaded Configuration File (none)

    首先我来描述问题: 编译安装完php的扩展库memcache后,在php.ini文件中添加了memcache.so的配置文件 extension=/usr/local/php5.6.27/lib/ph ...

  9. iOS应用跳转至app store 评分页

    小功能之去AppStore评分 #pragma mark - 去AppStore评分 -(void)goToAppStore { NSString *str = [NSString stringWit ...

  10. web虚拟主机、日志分割以及日志分析

    目录 一.构建虚拟web主机 1.1 概述 1.2 支持的虚拟主机类型 1.3 部署虚拟主机步骤 1.3.1 基于域名的虚拟主机 (1)为虚拟主机提供域名解析 (2)为虚拟主机准备网页文档 (3)添加 ...