1、微信后台服务器-C# VS 2010 创建、安装、调试 windows服务(windows service)

在一个应用程序中创建多个 windows 服务的方法和 1083 错误的解决方法法

添加‘服务安装成功’后自启动功能

--------------------------------------------------------------------------------------
1.创建 windows服务 项目
  文件 -> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服务"

 

2.系统已经为我们建立了一个 Service1.cs 组件,测试时我们就用它了.
 如果要新件的话,右键项目 -> 添加 -> 新建项 -> windows 服务。

 

3.在 Service1.cs 上 ,按 F7 (右键查看代码),打开代码页。加入我们测试用的代码。
  注意:下面的几个方法中的 str 变量,为了我们一会儿调试时设置断点用的!

 

 using System;
 using System.Diagnostics;
 using System.ServiceProcess;

 namespace WindowsService1
 {
  public partial class Service1 : ServiceBase
  {
   public Service1()
   {
    InitializeComponent();
    InitService();
   }

   /// <summary>
   /// 初始化服务参数
   /// </summary>
   private void InitService()
   {
    base.AutoLog = false;
    base.CanShutdown = true;
    base.CanStop = true;
    base.CanPauseAndContinue = true;
    base.ServiceName = "Service1";  //这个名字很重要,设置不一致会产生 1083 错误哦!
   }
   protected override void OnStart(string[] args)
   {
    string str ="服务开启";
   }

   protected override void OnStop()
   {
    string str ="服务停止";
   }
   protected override void OnContinue()
   {
    string str ="服务继续运行";
    base.OnContinue();
   }
   protected override void OnPause()
   {
    string str ="服务暂停";
    base.OnPause();
   }
  }
 }

 

4.建立服务的“安装程序”
4.1 双击”Service1.cs“,打开 Service1.cs 的视图设计器
4.2 在视图设计器中任意位置右键,选择”添加安装程序“  
4.3 这时项目跟目下将出现一个 ProjectInstaller.cs 的组件
    (如果是第一次添加”安装程序“的话)
4.4 双击 ProjectInstaller.cs 打开 ProjectInstaller  的视图设计器
4.5 找到 serviceInstaller1 组件,选中后按 F4 键,设置组件属性。
  Description=“测试服务1”;
  DisplayName=“Service1”;
  ServiceName=“Service1”;//这个值必须和 WindowsService1.InitService() 方法下设置的 base.ServiceName 属性一至。
  StartType 为服务运行类型,根据你的需要设置即可。(Manual:手动启动,AutoMatic 为自动启动)
4.6 找到 serviceProcessInstaller1 组件,选中后按 F4 键,设置组件属性。
  Account=“LocalSystem”; //设置为其他的属性在开启服务时,会提示输入用户名和密码
4.7 这样就完成了一个服务的所有准备,下面就是安装和测试工作。

 

5.生成组件
 右键项目,选择“生成”。

 

6.安装组件
6.1 使用 InstallUtil.exe 工具注册组件服务,文件位置在不同版本的 framework 中。我用的是 4.0 所以在一下位置
 C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
6.2 打开生成目录,如果生成成功会有一个 WindowsService1.exe 文件
6.3 在生成目录根目录下新加两个 bat(批处理文件),用于安装和卸载服务
  新建一个文本文件,打开文件加入以下两行命令
  C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe WindowsService1.exe
  pause
  保存后关闭文本文件,之后将其重命名为“安装服务.bat”文件,注意要修改后缀名为 .bat!

  再新建一个文本文件,打开文件加入以下两行命令
  C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u WindowsService1.exe
  pause
  保存后关闭文本文件,之后将其重命名为“卸载服务.bat”文件,注意要修改后缀名为 .bat!
6.4 “安装服务.bat”文件,安装windows 服务

 

7.安装成功后需要手动开启服务,因为我们刚设置 serviceInstaller1.StartType 为 Manual
 打开windows 服务管理器,找到名为 Service1 的服务,右键属性。点击【启动】按钮

 

8.windows 调试
8.1 回到开发环境,选择调试->附加到进程,勾选”显示所有用户进程“
8.2 找到 WindowsService1.exe 进程(如果没有点击下刷新按钮),选中后点击“附加到进程”按钮。
8.3 选中 Service1.cs 文件,后按 F7 打开代码视图
8.4 在所有 str 变量上添加调试断点
8.5 回到windows服务管理器,找 Service1 服务并选中它,在左侧有一个“暂停”按钮。点击一下
  这时,OnPause 方法下的断点命中!OK 达到了调试的目的了

 

9.如果想一次安装多个服务,需要按照 2~5 的步骤多添加几个服务就好了!
 
--------------------------------------------------------------------------------------
问题及解决方案
注册成功后,启动 Windows服务 时遇到错误:1083 的解决办法
1.查看 Main() 方法中是否启动了指定的服务
 ServiceBase[] ServicesToRun;
 ServicesToRun = new ServiceBase[] 
 { 
  new Service1(),
  new Service2() //如果建立多个服务需要添加这段代码
 };
 ServiceBase.Run(ServicesToRun);

2.确保 ProjectInstaller.cs 视图设计器中的 serviceInstaller1 组件的 ServiceName 属性
  与 Service1.cs 组件的 ServiceName 属性一致

-----------------------------------------------------------------------------------------

添加服务安装成功后自启动功能

1.打开 ProjectInstaller.cs 视图设计器,选中  serviceInstaller1 组件

2.打开 serviceInstaller1 组件的事件窗口,双击 AfterInstall 事件

3.在 serviceInstaller1_AfterInstall 事件方法下添加如下代码

      System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController();
      sc.ServiceName = "ExpressDispatchingTrack"; //必须与 ProjectInstaller.cs 视图设计器中的 serviceInstaller1 组件的 ServiceName 属性
一致
      sc.Start();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小游戏-斗地主是一款在微信平台上非常受欢迎的游戏,它结合了斗地主经典玩法和微信社交功能,让玩家可以与好友一起斗智斗勇。 在开发这款游戏时,使用了Node.js作为服务器端的开发语言。Node.js是一个基于JavaScript运行时的平台,它可以使我们使用JavaScript编写服务器端应用程序。这样一来,我们在开发微信小游戏-斗地主时可以使用JavaScript作为统一的开发语言,既方便了前端开发,又方便了后端开发。 通过使用Node.js作为服务器端,我们可以实现以下功能: 1. 用户管理:服务器可以管理玩家的注册、登录、信息保存等操作。每个玩家可以通过微信登录游戏,并在服务器上保存他们的游戏数据和好友列表。 2. 匹配系统:服务器可以实现玩家之间的匹配。玩家可以选择与好友进行对战,也可以选择与随机玩家进行匹配。服务器会根据玩家的匹配方式进行配对,确保游戏的公平性。 3. 游戏逻辑:服务器可以实现斗地主游戏的核心逻辑。它可以管理玩家的手牌、出牌规则、出牌顺序等游戏细节。服务器会实时更新玩家的游戏状态,保证游戏的顺畅进行。 4. 实时通信:服务器可以实现玩家之间的实时通信。玩家可以通过服务器发送消息给对方,例如邀请好友进行游戏、发送表情等。服务器可以将这些消息及时传递给游戏中的玩家,保证玩家之间的互动性。 通过使用Node.js作为服务器端,我们可以构建一个稳定高效的微信小游戏-斗地主平台。玩家可以通过微信小程序平台轻松进入游戏,与好友一起畅玩斗地主,享受竞技乐趣。同时,服务器的管理功能还可以确保游戏的公平性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值