在编程中服务的作用越来越大了,.net从2.0的 webservice,到3.5之后的WCF,服务的功能越来越强了。现在先从简单的看起,先看看WCF服务的发布。

  现在来看看一步一步发布 WCF 服务。
  环境:
  系统:windows 7
  开发工具:visual studio 2010  .net 版本:4.0

一、新建一个WCF服务

  1、“ 文件 → 新建 → 项目 → WCF 服务应用程序 ”;

  2、建好后,手动增加几个类,如图:

  

  3、实现服务接口,创建序列化的数据类。
  本项目中:

  [1] 服务接口:IService1.cs;

  [2] 服务接口实现:Service1.svc;

  [3] 序列化的数据类:CompositeType类;

  注意CompositeType类中的 [DataContract]和[DataMember],网络传输数据类必须要序列化。还有就是IService1中的[ServiceContract]和[OperationContract],这都是标准模式,只有这样写远程客户端才能访问的到服务的方法。

二、发布

  1、简单测试,直接 F5 运行,结果如下图:

  

  2、点击Service1.svc,结果如下图:

  

  图中的http://localhost:51781/Service1.svc?wsdl 就是服务的url,可以直接在本地测试。
  创建一个客户端测试工程。
  需要“添加服务引用”,将这个url添加。这很简单就不用给图了。给这个引用的服务命名:LocalRunService,如图,
  
  调用:

       //直接F5运行
//服务url:http://localhost:2303/Service1.svc?wsdl
using (LocalRunService.Service1Client sclient = new LocalRunService.Service1Client())
{
string data = sclient.GetData();
Console.WriteLine(data); TestMyWCFClient.LocalRunService.Person p = sclient.GetDataUsingDataContract();
string pcontent = string.Format("ID:{0}{1}Name={2}", p.ID,Environment.NewLine, p.Name);
Console.WriteLine(pcontent);
Console.ReadLine();
}

  结果:
  

  2、正式发布
  (1)检查IIS的必要组件;

  (2)注册一下WCF组件。
  打开Visual Studio命令行提示工具(Start->所有程序->Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示, Windows7及以后的版本,需要以管理员身份打开).

  [1] 运行” ServiceModelReg.exe –ia”;

  

  [2] 运行”aspnet_regiis.exe -i”;

  

  

  

  

  

  

  (3)发布:右键 → 发布

  

  (4)跟部署网站一样部署在IIS服务器上;

  (5)直接“ 右键 → 管理网站 → 浏览 ”,报错如下:

  

  (6)原因未启用目录浏览,启用即可:

  

  (7)正式发布成功。

  

WCF 之 初识WCF的更多相关文章

  1. WCF编程系列(一)初识WCF

    WCF编程系列(一)初识WCF   Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程模型.WCF的基本概念:  地址:定义服务的 ...

  2. 我们一起学习WCF 第一篇初识WCF(附源码供对照学习)

    前言:去年由于工作需要我学习了wcf的相关知识,初期对wcf的作用以及为何用怎么样都是一知半解,也许现在也不是非常的清晰.但是通过项目对wcf的运用在脑海里面也算有了初步的模型.今天我就把我从开始wc ...

  3. WCF系列教程之初识WCF

    本随笔参考自WCF编程系列(一)初识WCF,纯属读书笔记,加深记忆. 1.简介:Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程 ...

  4. WCF(一):初识WCF

    目录: 一.什么是WCF 二.WCF能做什么 三.WCF的模型 四.WCF的基本概念 五.WCF的快速创建 1.WCF是什么 A.WindowsCommunication Foundation(WCF ...

  5. 初识WCF之使用配置文件部署WCF应用程序

    二月份的开头,小编依旧继续着项目开发之路,开始接触全新的知识,EF,WCF,MVC等,今天小编来简单的总结一下有关于WCF的基础知识,学习之前,小编自己给自己提了两个问题,WCF是什么?WCF能用来做 ...

  6. [WCF编程]1.WCF入门示例

    一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...

  7. WCF服务与WCF数据服务的区别

    问: Hi, I am newbie to wcf programming and a little bit confused between WCF Service and WCF Data  Se ...

  8. 大比速:remoting、WCF(http)、WCF(tcp)、WCF(RESTful)、asp.net core(RESTful)

    近来在考虑一个服务选型,dotnet提供了众多的远程服务形式.在只考虑dotnet到dotnet的情形下,我们可以选择remoting.WCF(http).WCF(tcp).WCF(RESTful). ...

  9. 大比速:remoting、WCF(http)、WCF(tcp)、WCF(RESTful)、asp.net core(RESTful) .net core 控制台程序使用依赖注入(Autofac)

    大比速:remoting.WCF(http).WCF(tcp).WCF(RESTful).asp.net core(RESTful) 近来在考虑一个服务选型,dotnet提供了众多的远程服务形式.在只 ...

随机推荐

  1. cocos2d-x addImageAsync()异步加载资源成功之后的场景跳转问题

    http://blog.csdn.net/w20175357/article/details/23546985 1.先说说addImageAsync()异步加载图片的问题 做游戏的时候现在资源的比较大 ...

  2. 解决Mysql 服务无法启动 服务没有报告任何错误

    MySQL数据库在升级到5.7版本后,和之前的版本有些不一样,没有data文件夹,我们都知道MySQL数据库文件是保存在data文件夹中的,网上有人说把5.6版本的data文件夹拷贝一个,这种说法听听 ...

  3. HRBUST 1200 装修

    $dp$. $dp[i]$记录铺满$3*i$的方案数.最后两列铺了$1$个$2*2$的和两个$1*1$的,或者是最后$1$列铺了$3$个$1*1$的. 因此$dp[i]=dp[i-1]+dp[i-2] ...

  4. spark sql遇到的问题

    项目背景:计算平台架构hadoop spark   spark on yarn,支持多种sql引擎如hive.spark sql.impala等. 问题描述:SPARK SQL在做insert ove ...

  5. window10 Powershell使用curl命令报错解决方法

    报错信息:curl : 无法分析响应内容,因为 Internet Explorer 引擎不可用,或者 Internet Explorer 的首次启动配置不完整.请指定 UseBasicParsing ...

  6. Luogu P2146 软件包管理器(树链剖分+线段树)

    题意 给定\(n\)个软件包,每个软件包都有一个依赖软件包,安装一个软件包必须安装他的依赖软件包,卸载一个软件包必须先卸载所有依赖于它的软件包.给定\(m\)此操作,每次一个操作\(install/u ...

  7. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

  8. [LOJ2541]猎人杀

    好题== 先转化一下,每个人被杀死后给他打标记,以后随机杀人时选到有标记的人就继续随机,这样并不会改变每个人被杀死的概率 直接算很难算,考虑容斥,我们枚举$S$表示在$1$死后才死的人至少在集合$S$ ...

  9. 【贪心】hdu6180 Schedule

    题意:给你n个任务的开始时间和结束时间,一个机器同时最多执行一个任务,问你最少要几个机器.保证机器最少的前提下,问你每个机器的开动时间(最后一次关闭-第一次开启)之和最少是多少. 把这些线段画在数轴上 ...

  10. 获取asp.net mvc应用程序的根目录

    如果使用Server.MapPath(“controllerName”)这样取得的是带控制权名称的目录, 所以要取得上一级目标,如:Server.MapPath("../"),这才 ...