C#发现之旅:C#开发Windows Service程序(上)
2009-04-06 08:24:20 来源:WEB开发网核心提示: 图片看不清楚?请点击这里查看原图(大图),客户端软件还能设置服务监视的目录,C#发现之旅:C#开发Windows Service程序(上)(5),系统设置对话框为软件设计命令行参数设计一般而言,我们将服务和客户端分成两个C#工程开发,但功能性代码还在运行,可以调试,但这里为了方便我们只在一
图片看不清楚?请点击这里查看原图(大图)。
客户端软件还能设置服务监视的目录,系统设置对话框为
软件设计
命令行参数设计
一般而言,我们将服务和客户端分成两个C#工程开发,但这里为了方便我们只在一个工程中实现服务器和客户端软件的开发。Windows服务是不能显示图形化用户界面的,但并不是说Windows服务的软件中不能包含显示图形化用户界面的软件模块。我们完全可以编写一个EXE,其中包含服务器和客户端两个相互独立的软件模块。直接执行EXE将以服务模式运行,若带有命令行参数将以客户端模式运行。为此我们设计了如下的命令行参数
命令行参数
功能
无任何参数
以服务模式运行,调用ServiceBase.Run函数来运行服务。
/install
调用InstallUtil.exe安装服务,将EXE自己注册到Windows服务管理器中。
/uninstall
调用InstallUtil.exe卸载服务。
/client
以客户端模式运行,显示图形用户界面。
/debug
以调试模式下运行,方便VS.NET对服务的操作过程提供调试。
使用VS.NET调试服务是一个比较麻烦的事,首先我们得安装并运行服务,然后使用VS.NET的菜单项目“工具-附加到进程”的操作来附加到服务程序,然后设置断点进行调试,其中OnStart函数是没有办法设置断点调试的。为此我们专门添加一个“/debug”命令行参数使得程序不进入服务模式,而是直接运行提供服务内容的功能性代码,然后主线程休眠,但功能性代码还在运行,可以调试。这样我们在VS.NET中设置断点后可以直接运行进行调试了。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››发现数据库对象的依赖关系
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
更多精彩
赞助商链接