随着“云”时代的到来,“云”已经无处不在了。什么是“云”,无非就是利用互联网强大的功能建立多个服务器,然后再利用互联网的传输数据的特点将数据从某个服务器中读取出来或者将你的数据上传上去。当然这个服务器不是一定就是传统意义的服务器,具备服务器功能的个人电脑也算是服务器。
所以在编程中服务的作用越来越大了,.net从2.0的webservice,到3.5之后的WCF,服务的功能越来越强了。现在先从简单的看起,先看看WCF服务的发布。

环境:

系统:windows 7

编程工具:visual studio 2010

.net 版本:4.0

一、创建一个WCF服务。

1、新建wcf项目,如图:




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




3、实现服务接口,创建序列化的数据类。

也就是本项目中的IService1.cs、Service1.svc和Person类,注意Person类中的 [DataContract]和[DataMember]这就不用说了,网络传输数据类必须要序列化。还有就是IService1中的[ServiceContract]和[OperationContract],这都是标准模式,只有这样写远程客户端才能访问的到服务的方法。

写两个简单的测试方法:所有代码如下,

(1)、方法都是写在服务接口中的

    [ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value); [OperationContract]
Person GetDataUsingDataContract();
}

(2)、实现接口中的方法

public class Service1 : IService1
{
public string GetData(int value)
{
return ServiceProvider.GetData(value);
} public Person GetDataUsingDataContract()
{
return ServiceProvider.GetDataUsingDataContract();
}
}

(3)、必要的时候创建类,用于保存数据什么的

[DataContract]
public class Person
{
private string id = string.Empty; private string name = string.Empty; [DataMember]
public string ID
{
get { return this.id; } set { this.id = value; }
} [DataMember]
public string Name
{
get { return this.name; } set { this.name = value; }
}
}

具体的实现方法可以都写在Service1中,为了代码能看的清楚一些,放在另一个类中用静态方法实现。还有一些其他方法的类。

  public class Common
{
public static string ToFormatGuid(string guid)
{
if (string.IsNullOrEmpty(guid))
{
return string.Empty;
} return guid.Replace("-", "");
}
} public class ServiceProvider
{
public static string GetData(int value)
{
return string.Format("You entered: {0}", value);
} public static Person GetDataUsingDataContract()
{
Person composite = new Person(); try
{
composite.ID =Common.ToFormatGuid(Guid.NewGuid().ToString()); composite.Name = DateTime.Now.ToString("yyyyMMdd");
}
catch { } return composite;
}
}

另外这个Web.config文件,是保存一些默认属性,比如如果有用到数据库这里就保存数据库连接。还有如果想设置一些配置可以手动创建一个App.config,用法就不说了。
好了到此,一个简单的WCF服务就创建好了。

代码下载:
http://download.csdn.net/detail/yysyangyangyangshan/5691643

二、如何发布

1、简单的测试

创建好了WCF服务,直接F5运行吧。会在你的浏览器中弹出如下,

图中的http://localhost:2303/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(2); 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、正式发布

//待续

WCF-001:WCF的发布的更多相关文章

  1. wcf服务与web发布时无法访问 几种解决办法

    1   如果wcf服务与web发布在同一iis目录下,没有跨域的问题   但发布前要修改 ServiceReferences.ClientConfig 把wcf服务地址改为你发布后的iis的ip地址( ...

  2. wcf通过webHttpBinding方式发布rest web服务

    <system.serviceModel> <services> <service name="ServiceUpdater.ServiceUpdate&quo ...

  3. WCF尝试创建与发布IIS(含问题描述)

    技术贴技术贴就直接讲技术来,客套的话我也不多说了,各位看官包涵包涵. 跟着园内高手一步一步发布成功,欣喜若狂之际,发个贴纪念纪念一下. 废话不多说,不正确之处,还望大家积极指出,共同进步.哈哈~~~ ...

  4. WCF服务创建到发布(SqlServer版)

    在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构.该架构的项层为服务模型层. 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型. ...

  5. 跟我一起学WCF(13)——WCF系列总结

    引言 WCF是微软为了实现SOA的框架,它是对微乳之前多种分布式技术的继承和扩展,这些技术包括Enterprise Service..NET Remoting.XML Web Service.MSMQ ...

  6. Learing WCF Chapter1 WCF Services

    WCF ServicesWCF services are the new distributed boundary in an enterprise application—with an empha ...

  7. WCF Publisher/Subscriber 订阅-发布模式

    本博后续将陆续整理这些年做的一些预研demo,及一些前沿技术的研究,与大家共研技术,共同进步. 关于发布订阅有很多种实现方式,下面主要介绍WCF中的发布订阅,主要参考书籍<Programming ...

  8. 1 学习wcf 编写简单的WCF服务流程 并发布在IIS上

    学习笔记 学习大佬的博客 https://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html  写一遍加深印象 图片看不清楚的 可 ...

  9. WCF 基于 WinForm 宿主 发布

    ServiceHost Host = new ServiceHost(typeof(ServiceHTTP)); //绑定 System.ServiceModel.Channels.Binding h ...

  10. 重温WCF之WCF传输安全(十三)(3)基于SSL的WCF对客户端验证(转)

    转载地址:http://www.cnblogs.com/lxblog/archive/2012/09/18/2690719.html 上文我们演示了,客户端对服务器端身份的验证,这一篇来简单演示一下对 ...

随机推荐

  1. qt 获取windows 的消息(通过MFC的DLL的透明窗体转发消息)good

    qt 给win32 发送消息很简单,但是要获取windows 消息却十分复杂,最后想了一个不是很完美 但是也是以现在本人能力所能实现的唯一途径了,基本原理是 利用vc编写一个mfc 的dll ,这个d ...

  2. 移植ffmpeg到VC环境心得

    所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5.别忘记了顶贴哦. 移植ffmpeg到windows,主要的修 ...

  3. counting objects in class

    參考文献:pgno=1">http://www.drdobbs.com/cpp/counting-objects-in-c/184403484? pgno=1

  4. cocos2dX 之CCParticle

    今天我们来看看粒子特效, 何为粒子特效, 为了模拟燃烧的火焰, 天空飘下来的血环, 滴落的小雨, 这些无规律变化的物体, 我们引进了粒子特效这个名词, 粒子特效的原理是将无数的单个粒子组合使其呈现出固 ...

  5. ThinkPHP的连贯操作方法中field方法

    ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来. 1.用于查询 在查询操作中field方法是使用最频繁的. $Model ...

  6. UVA1455 - Kingdom(并查集 + 线段树)

    UVA1455 - Kingdom(并查集 + 线段树) 题目链接 题目大意:一个平面内,给你n个整数点,两种类型的操作:road x y 把city x 和city y连接起来,line fnum ...

  7. poj1651(区间dp)

    题目连接:http://poj.org/problem?id=1651 题意:给出一组N个数,每次从中抽出一个数(第一和最后一个不能抽),该次的得分即为抽出的数与相邻两个数的乘积.直到只剩下首尾两个数 ...

  8. 单片机实验: 三轴磁场模块 GY-271

    最近买了一块三轴磁场模块进行实验 名称:HMC5883L模块(三轴磁场模块) 型号:GY-271 使用芯片:HMC5883L 供电电源:3-5v 通信方式:IIC通信协议 测量范围:±1.3-8 高斯 ...

  9. poj1655(树形dp)

    题目链接:http://poj.org/problem?id=1655 题目大意:给一个树,删除其中一个点就会形成一个森林,点的平衡度为删除了这个节点后,所形成多个树,其中组成树的节点最多,节点个数就 ...

  10. windows之实现3D立体效果的三种方法

    第一种:快捷键:win+tab 另外一种:cmd输入rundll32.exe dwmapi #105 第三种:使用软件bumptop