`
pcajax
  • 浏览: 2173772 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Window Services的调试和非托管dll的引用及其他一些注意问题

阅读更多
  • 一个asp.net项目,客户提出需求,需要增加即时短信提醒功能;因为项目中使用到GPRS模块做无线通讯,还可以用作发送短信,就用了这个GPRS模块发短信提醒;
    这个即时短信提醒功能,计划用window services实现;然后修改表结构,开始window services的代码编写。代码编写完成后,开始调试。测试时才发现,window services测试还不简单,google了下,window services的调试主要有以下几个方法:
    方法1:写日志
     原始的调试windows service的方法,但是调试起来不方便。

方法2:附加进程
        附加进程的方法可以像调试正常的widows程序一样,设置断点进行单步调试。但是必须在安装启动服务后,才可以进行附加此服务进程,可在附加的同时OnStart 函数已经执行完毕,所以对Onstart 无法调试(正常服务的启动时间为30秒左右,当服务启动时间超过30秒会报错)。需要通过设置启动服务延时来加载调试。设置有些繁琐;


方法3:修改Main函数,在用户交互模式下调试。调试时更改Project的输出类型为Console Application,就可以直接调试了。

     if (Environment.UserInteractive)
            {
                Service1 s = new Service1();
                string[] args = { "a", "b" };
                s.start(args);
                Console.WriteLine("the service is started");
                Console.ReadLine();
                s.stop();
                Console.WriteLine("the service is stopped");
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
         {
          new Service1()
         };
                ServiceBase.Run(ServicesToRun);
            }


在应用非托管dll时,有时会提示找不到dll文件,可以依次尝试一下过程看会否有帮助:
1.复制dll文件到项目bin文件下;
2.复制dll文件到system32路径下;
3.在[DllImport]是加上dll文件路径;

另外,在开发window services程序时,使用的Timer控件需注意。如果使用System.Windows.Form.Timer控件,可能会不能正常运行,应使用System.Timers.Timer控件;
安装服务后,在删除服务时,可以直接使用SC.exe命令删除服务

分享到:
评论

相关推荐

    mstsc.exe mstscax.dll

    标题 "mstsc.exe mstscax.dll" 和描述 "免安装远程桌面客户端 远程桌面客户端远程桌面客户端" 指向的核心知识点是微软的远程桌面连接功能,这是一个允许用户从一个计算机(客户端)远程控制另一个计算机(服务器)的...

    windowXP用iis系统组件

    IIS 5.1在设计时主要考虑了小型企业和个人用户的需求,它提供了基本的Web托管能力,同时也支持一些企业级功能。 【描述】:在安装SQL Server之前,有些计算机可能需要预先安装IIS作为前置服务组件。这是因为SQL ...

    window 2003 server IIS 安装必须的5个文件

    在Windows 2003 Server操作系统中,Internet Information Services(IIS)是一个强大的Web服务器组件,用于托管网站、应用程序和其他互联网服务。为了确保IIS能够正确安装和运行,需要一些关键文件。以下是对标题和...

    win2003 64位系统下启用.net 32位应用

    在部署32位.NET应用程序时,还需要确保所有依赖项(如DLL文件和其他外部资源)都是32位版本。否则,可能会遇到“BadImageFormatException”或其他兼容性错误。在64位系统上,32位应用程序只能加载32位组件。 最后,...

    window2003服务器php环境配置

    1. **IIS(Internet Information Services)**:这是Microsoft提供的Web服务器,用于托管网站和服务。在Windows Server 2003中,IIS 6.0是默认安装的版本。 2. **PHP**:PHP(Hypertext Preprocessor)是一种流行的...

    Windows server 镜像中的sxs文件

    在Windows Server操作系统中,安装IIS(Internet Information Services)是一项常见的任务,它是Windows提供的一个用于托管Web服务的组件。然而,在某些情况下,特别是在部署特定功能,如ASP.NET 3.5时,可能会遇到...

    BlazorHostInWinService:这是一个示例项目,我们在Windows Service中托管Blazor项目。

    - 可能还有其他支持文件,如`.dll`库文件和静态资源。 总的来说,BlazorHostInWinService项目展示了如何将Blazor应用的运行环境从传统的Web服务器扩展到后台Windows服务,这对于那些需要在无人值守环境下持续运行的...

    IIS和Tomcat整合用到的文件.zip

    在IT领域,尤其是在服务器管理与Web应用部署方面,IIS(Internet Information Services)和Tomcat是两种非常重要的软件。IIS是由微软公司推出的Web服务器,主要用于处理静态网页和托管ASP.NET等微软技术的应用程序;...

    WINDOWS XP正常运行必须的进程

    这些进程负责操作系统的基础功能和服务,一旦被错误地终止或删除,可能会导致系统崩溃或出现其他严重问题。以下是一些关键进程及其详细信息。 ### 1. System Process (SystemProcess) **进程文件**: systemprocess...

Global site tag (gtag.js) - Google Analytics