开发框架3.0:WebService升级WCF操作指引(1)
作者:C/S框架网  发布日期:2012-03-02 13:02:00
  开发框架3.0:WebService升级WCF操作指引(1)



开发框架高级版使用WebService构架作为中间层,IIS作为Web服务平台,在大数据量并发时IIS性能表现不稳定,偶尔有挂机现象,虽然重启IIS服务或重置连接池可以解决问题,但不是理想的方案。WCF架构技术更成熟,性能更稳定,WCF可以使用IIS承载或封装到Windows服务,实现Window服务承载(Windows Service Hosting),在IIS不理想的情况下,可以启动Window服务内的WCF服务器。




下面是从WebService升级到WCF的操作步骤:


一。建立WCF服务项目

服务端,在解决方案点右键->添加->新建网站。


贴图图片



选择WCF 服务,位置改为WCF_Server,因为旧的WebService网站名称是“WebService“,注意不能同名。


贴图图片


二。建立WCF服务。

我们将建立新的WCF服务后,再删除原有的WebService服务。

1. CommonWebService               ->对应的WCF服务为:CommonService
2. DataDictWebService                ->对应的WCF服务为:DataDictService
3. SalesModuleWebService           ->对应的WCF服务为:SalesModuleService
4. SystemSecurityWebService      ->对应的WCF服务为:SystemSecurityService

依次建立WCF服务,下图是建立CommonService服务。

贴图图片


建立CommonService.svc后,在工程项目内可以看到下面3个文件:


贴图图片

CommonService.cs 是WCF服务的代码文件。
ICommonService.cs是WCF服务的接口定义文件。
CommonService.svc是WCF Web服务页面。


接下来我们在ICommonService.cs文件内定义接口,从旧的CommonWebService.cs文件内把方法定义一个个复制过来,代码如下:


C# Code:

public interface ICommonService
{
   
   [OperationContract]
   bool BackupDatabase(string DBNAME, string BKPATH);
   
   [OperationContract]
   byte[] GetAttachedFiles(byte[] loginTicket, string docID);
   
   [OperationContract]
   byte[] GetBackupHistory(byte[] loginTicket, int topList);
   
   [OperationContract]
   byte[] GetBusinessTables(byte[] loginTicket);
   
代码略。。。

 }
   //来源:C/S框架网(www.csframework.com) QQ:1980854898
   

定义好接口后,在CommonService.cs 内实现接口的方法,从旧的CommonWebService.cs文件内把所有方法的代码复制过来就行。


按照上面的步骤实现DataDict,SalesModule,SystemSecurity三个WCF服务。


将WCF_Server项目设为启动项,然后运行WCF服务:


贴图图片

运行成功后,可以移除旧的WebService工程项目。这时,服务端的升级已经完成。


三。客户端添回WCF服务引用


在上面的网页中点SalesModuleService.svc,打开销售模块的WCF服务页面,如下图:


贴图图片


添加服务引用窗体:


贴图图片


依次添加其它WCF服务,最后删除旧的WebService服务引用。如下图:


贴图图片




上一篇 下一篇