WCF-001:WCF的发布

本文详细介绍了如何使用Visual Studio 2010创建并发布一个基本的WCF服务,包括服务接口设计、序列化数据类、实现方法以及服务的发布步骤。通过简单的示例代码和本地测试过程,读者可以掌握从创建到发布的完整流程。
    随着“云”时代的到来,“云”已经无处不在了。什么是“云”,无非就是利用互联网强大的功能建立多个服务器,然后再利用互联网的传输数据的特点将数据从某个服务器中读取出来或者将你的数据上传上去。当然这个服务器不是一定就是传统意义的服务器,具备服务器功能的个人电脑也算是服务器。
所以在编程中服务的作用越来越大了,.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.youkuaiyun.com/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、正式发布
//待续





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值