现在的位置: 首页 > 综合 > 正文

.NET Window 服务 出现 错误1053

2013年03月25日 ⁄ 综合 ⁄ 共 1411字 ⁄ 字号 评论关闭
文章目录

 

    今天做了一个windows 服务,在安装时出现了问题。

问题描述

1. 好像是安装成功了的,因为在服务列里有这个服务:

 

2. 但是就是启动不了。点启动

 

系统环境:

               Win7 ,Framework 4

 

原因为何?

            找了很久没招。于是,我在调出了一个之前写的windows 服务(CareEye),安装,启动服务......能启动:

           

         ?

         ?

         最土的办法:比较项目有什么差别。程序就不用看了,主要是项目配置方面 的。还真发现了问题:

         这是能跑的服务:

        

                 下面的是跑不起来的服务配置:

                

           

Client Profile的.NET Framework          

           Framework 不一样,就有如此大的区别?于是乎找一下,大致是这么说的:

           Client Profile的.NET Framework是不加的子集或者说是精简版(Compact Version)。

 

为什么要引入这个简化版本呢?

  1. 减少.NET Framework以及包还.NET Framework的应用程序的部署时间;
  2. 减少.NET Framework部署的失败;
  3. 减少.NET Framework在ISV软件的所占大小,从而给其软件更多的空间;
  4. 减少安装了.NET Framework Client Profile的系统受攻击的“界面”,因为Client Profille中部包括ASP.NET和一些服务器所要的组件;

      

       Jossef的博客What’s new in .NET Framework 4 Client Profile Beta 2 给出了详细的解释。

 

问题算是找着了。但是我的项目所有的都是用 Framework 4 ,都要改成Client Profile的?

 

原来前面都是扯淡

      我思考再三,不能修改Framework 4 ,这无疑是大的版本变更才做的事。因为所有的系统模块折Framewok版本,都会要求变成一致,才能运行。而系统(一拍天下)在线上跑着,这是运营大忌。

      但是,我回头想一个问题:按我之前的分析,Framework 4 不能创建windows service了,还得非是什么Client Profile版本才行?想想都不可能,回头再去找,发现在服务的入口出现了一个问题,在部署时没有注意到:

   

      简单说明一下:因为在建服务时我没有没有配置启动参数。所以,服务启动时在无参数的情况下,会进入“后台控制”类型的代码。后台控制代码会要求与桌面交互的,而默认服务是不能与桌面进行交互,肯定会出问题的。(没看懂,也不要紧,毕竟您不必对此感兴趣)。

      只需要知道一点:是因为细节处理上的一个大意,急于部署服务,而忽略了此,导致花了大半天天的时间来找问题。很不值,所以,做事放慢节奏是很重要的。

    

创建服务相关资料

     1. 讲得比较本质,简洁的

http://wenku.baidu.com/view/8bf201f3f90f76c661371a22.html

     2. 可操作性强一点的:http://wenku.baidu.com/view/3d9b972b2af90242a895e599.html

     

【上篇】
【下篇】

抱歉!评论已关闭.