java 服务 调试_你如何调试Windows服务?

您可以使用参数让您的应用程序决定是作为服务还是常规应用程序启动(即在本例中显示表单或启动服务):

static void Main(string[] args)

{

if ((1 == args.Length) && ("-runAsApp" == args[0]))

{

Application.Run(new application_form());

}

else

{

System.ServiceProcess.ServiceBase[] ServicesToRun;

ServicesToRun = new ServiceBase[] { new MyService() };

System.ServiceProcess.ServiceBase.Run(ServicesToRun);

}

}

现在,如果您传递参数"-runAsApp",您可以正常调试应用程序 - SCM将不会传递此参数,因此您也可以将其用作任何代码更改的服务(假设您派生自 ServiceBase )

Edit:

与Windows服务的另一个区别是身份(这可能对InterOp尤为重要) - 您希望确保在“app”模式和服务模式下以相同的身份进行测试 .

为此,您可以在应用模式下使用模拟(我可以发布C#包装器,如果它有帮助,但可以轻松搜索),以使用您的Windows服务将运行的相同标识,即通常是LocalService或NetworkService .

如果需要其他身份,您可以向app.config添加设置,以便您决定是否使用凭据,如果是,则使用哪个用户进行模拟 - 这些设置在作为应用程序运行时处于活动状态,但是对于Windows服务已关闭(因为服务已经在所需的身份下运行):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值