C#写服务怎么调试
就是可以单步跟踪的那种,转到应用程序我试过了。可以正常运行但是写成服务就不行。还有别的方法么?...
就是可以单步跟踪的那种,转到应用程序我试过了。可以正常运行但是写成服务就不行。还有别的方法么?
展开
展开全部
第一种方案:使用附加至进程,直接附加到服务中即可。但这种方式不大适合未处理错误崩了的情况
第二种方案:
1. 更改项目的输出类型由Windows 应用程序为控制台应用程序
2. 在调试设置页面启动选项的命令行参数中随意输入几个字符,如DEBUG
3. 关键的地方来了,转到Program.cs页面的Main函数处,手动加入一个参数,如static void Main(string[] args)
4. 在Main中更改代码
if(args.Length==0)//这是服务启动的条件
{
//将原有生成的启动服务的代码拷贝至此处
}
else//即有启动选项的命令行参数DEBUG了
{
//将服务中的类当作一个普通类来使用即可,如
***Service srv = new ***Service();
srv.DoSomeThing();
Console.Read();
}
5. 调试时,直接在项目处点击鼠标右键,选择 调试—启动新实例,这样就进入了else模式,就可以不用作为服务来运行了。
第二种方案:
1. 更改项目的输出类型由Windows 应用程序为控制台应用程序
2. 在调试设置页面启动选项的命令行参数中随意输入几个字符,如DEBUG
3. 关键的地方来了,转到Program.cs页面的Main函数处,手动加入一个参数,如static void Main(string[] args)
4. 在Main中更改代码
if(args.Length==0)//这是服务启动的条件
{
//将原有生成的启动服务的代码拷贝至此处
}
else//即有启动选项的命令行参数DEBUG了
{
//将服务中的类当作一个普通类来使用即可,如
***Service srv = new ***Service();
srv.DoSomeThing();
Console.Read();
}
5. 调试时,直接在项目处点击鼠标右键,选择 调试—启动新实例,这样就进入了else模式,就可以不用作为服务来运行了。
追问
你的第一个操作改为控制台应用程序在哪里改?
追答
项目文件,右键菜单,选择 属性,第二项也是这里更改的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询