WCF的WindowsService开发参考【附源码】

首先看图:

1:源码结构图 

 

 

2:配置文件参考

 

<? xml version = " 1.0 " ?>
< configuration >
  
< system.serviceModel >
    
< services >
      
< service name = " DotNet.Service.ExceptionService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/ExceptionService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IExceptionService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.FileService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/FileService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IFileService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.FolderService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/FolderService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IFolderService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.ItemDetailsService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/ItemDetailsService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IItemDetailsService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.ItemsService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/ItemsService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IItemsService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.LogOnService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/LogOnService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.ILogOnService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.LogService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/LogService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.ILogService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.MessageService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/MessageService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IMessageService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.ModuleService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/ModuleService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IModuleService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.OrganizeService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/OrganizeService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IOrganizeService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.ParameterService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/ParameterService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IParameterService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.PermissionItemService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/PermissionItemService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IPermissionItemService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.PermissionService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/PermissionService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IPermissionService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.RoleService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/RoleService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IRoleService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.SequenceService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/SequenceService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.ISequenceService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.StaffService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/StaffService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IStaffService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.UserService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/UserService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IUserService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.UserCenterDbHelperService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/UserCenterDbHelperService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IDbHelperService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.BusinessDbHelperService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/BusinessDbHelperService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IDbHelperService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.WorkFlowActivityAdminService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/WorkFlowActivityAdminService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IWorkFlowActivityAdminService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.WorkFlowCurrentService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/WorkFlowCurrentService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IWorkFlowCurrentService " >
        
</ endpoint >
      
</ service >
      
< service name = " DotNet.Service.WorkFlowProcessAdminService "  behaviorConfiguration = " Internet " >
        
< endpoint address = " http://localhost:8888/DotNet.Service/WorkFlowProcessAdminService/ "  binding = " basicHttpBinding "  contract = " DotNet.IService.IWorkFlowProcessAdminService " >
        
</ endpoint >
      
</ service >
    
</ services >
    
< behaviors >
      
< serviceBehaviors >
        
< behavior name = " Internet " >
          
< serviceMetadata httpGetEnabled = " true "   />
          
< serviceDebug httpHelpPageEnabled = " True "  includeExceptionDetailInFaults = " True "   />
        
</ behavior >
      
</ serviceBehaviors >
    
</ behaviors >
  
</ system.serviceModel >
</ configuration >
复制代码

 

3:核心代码部分

// --------------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd. 
// --------------------------------------------------------------------

using  System;
using  System.Configuration;
using  System.Reflection;
using  System.ServiceModel;
using  System.ServiceModel.Configuration;
using  System.ServiceProcess;
using  System.Diagnostics;
using  System.Windows.Forms;

namespace  DotNet.WindowsService
{
    
using  DotNet.Utilities;

    
///   <summary>
    
///  CommonService
    
///  
    
///  修改纪录
    
///
    
///         2008.03.06 版本:1.0 JiRiGaLa 创建Windows服务。
    
///         
    
///  版本:1.0
    
///
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2007.08.15 </date>
    
///   </author>  
    
///   </summary>
     public   partial   class  CommonService : ServiceBase
    {
        
public  CommonService()
        {
            InitializeComponent();
        }

        
///   <summary>
        
///  服务数组
        
///   </summary>
        ServiceHost[] serviceHosts  =   null ;

        
protected   override   void  OnStart( string [] args)
        {
            
//  是否检查在线状态
            BaseSystemInfo.CheckOnLine  =   false ;
            BaseSystemInfo.AllowNullPassword 
=   true ;
            
//  是否记录日志
            BaseSystemInfo.RecordLog  =   true ;
            
//  是否需要注册
            BaseSystemInfo.NeedRegister  =   false ;
            
//  读取配置文件
            ConfigHelper.GetConfig(Application.StartupPath  +   " \\ "   +  ConfigHelper.FileName);

            
//  读取配置文件
            Configuration configuration  =  ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location);
            ServiceModelSectionGroup serviceModelSectionGroup 
=  (ServiceModelSectionGroup)configuration.GetSectionGroup( " system.serviceModel " );
            
//  开启每个服务
             int  i  =   0 ;
            serviceHosts 
=   new  ServiceHost[serviceModelSectionGroup.Services.Services.Count];
            
foreach  (ServiceElement serviceElement  in  serviceModelSectionGroup.Services.Services)
            {
                
string  assemblyString  =  serviceElement.Name.Substring( 0 , serviceElement.Name.LastIndexOf( ' . ' ));
                var serviceHost 
=   new  ServiceHost(Assembly.Load(assemblyString).GetType(serviceElement.Name), serviceElement.Endpoints[ 0 ].Address);
                serviceHost.Opened 
+=   delegate  { Console.WriteLine( " 第{0}服务:{1} " , i + 1 , serviceHost.BaseAddresses[ 0 ]); };
                serviceHost.Open();
                serviceHosts[i] 
=  serviceHost;
                i
++ ;
            }
            
base .OnStart(args);
        }

        
protected   override   void  OnStop()
        {
            Trace.WriteLine(
" Shutting down ServiceHost... " );
            
if  (serviceHosts  !=   null )
            {
                
for  ( int  i  =  serviceHosts.Length - 1 ; i  >=   0 ; i -- )
                {
                    serviceHosts[i].Close();
                    serviceHosts[i] 
=   null ;
                }
            }
            
base .OnStop();
        }
    }
}
复制代码

 

4:安装服务、卸载服务的命令

installutil  / " D:\DotNet.Common\DotNet.CommonV3.6\DotNet.WindowsService\bin\Debug\DotNet.WindowsService.exe "
installutil 
/ " D:\DotNet.Common\DotNet.CommonV3.6\DotNet.WindowsService\bin\Debug\DotNet.WindowsService.exe "
复制代码

5:安装服务

 

6:运行情况 

 

7:运行客户端,搞定!

 

8:全部功能调试ok,源码参考下载【WindowsService部分】

/Files/jirigala/JiRiGaLa.DotNet.WindowsService.rar 

 

心情压抑时,看看女儿的照片,逗逗女儿啥烦恼都没了,像我不哈哈,小小可爱。

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

About

吉日嘎拉可爱的女儿

吉日嘎拉(蒙古语为吉祥如意),2000年毕业于黑龙江大学计算机系软件专业,目前定居杭州,典型的IT软件土鳖一个,外号“软件包工头”。

 

通用权限管理系统组件(GPM - General Permissions Manager)自2003年开始发布,目前是国内注册用户和免费盗版用户最多的权限管理系统,是各种信息管理系统开发中彻底的权限解决方案。本组件支持多种主流数据库(Oracle、sqlsever、db2、mysql),功能强大,使用方便,代码简洁,思路严谨,被广大支持者称为权限管理系统中的“走火入魔级权限管理系统”。

 

精心维护通用权限管理系统组件(GPM - General Permissions Manager)有8年多,3年的不断推广,20万行经典的业务逻辑积累,经过上万次的调试修正,经历了四百个付费客户,上百软件公司的实战开发。

11年以上开发经验,外企工作5年,上市公司3年,独立经营软件公司2年,主持研发部门管理工作4年以上。

将权限管理、工作流做到我能力的极致,一个人只能做好那么很少的几件事情。

吉日嘎拉,通用权限管理系统组件
QQ:252056973,Mail:[email protected]

访问者分布 Locations of visitors to this page

通用权限管理模块的严谨设计定位、精心编码实现、不断维护推广、持续优化改进,主要是为了实现一个可以高度重复利用劳动成果的工具软件并有偿提供给所需的人们,另想成为国人值得骄傲的知名软件功能模块。

可供国内管理类开发人员在日常工作中进行灵活二次开发利用的模块,开发管理类软件的必备工具之一,我们的目标就是让程序员早点儿回家休息。

淘宝店地址:http://jirigala.taobao.com

你可能感兴趣的:(开发,version,配置文件,休闲,结构图)