zoukankan      html  css  js  c++  java
  • [开发笔记]-Windows Service服务相关注意事项

    注意一:报错:“本地计算机上的 *** 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”

      该问题主要的原因是 Service服务程序中有错误。

      遇到这个问题时,无论是重新安装服务,还是重启计算机,每次启动时都会弹出这个错误提示框。

      解决这种问题最好的办法就是:使用 控制台应用程序 来调试,等调试通过后,在加入到Service服务程序中。

    注意二: 报错 :试图加载格式不正确的程序

    原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的。不能混编访问。不然会出现“试图加载格式不正确的程序”的错误。

     特别是引用其他第三方类库或者C++编译的类库时,容易出现这个问题。

    附:相关参考:

    64位操作系统下IIS报“试图加载格式不正确的程序”错误 - 软件设计师到程序员 - 博客频道 - CSDN.NET

    使用C#创建windows 服务 - 往事如锋 - 博客园

     注意三:使用ManagedInstallerClass.InstallHelper安装服务的蛋疼问题

    这个路径绝对没错,服务映像exe也没问题,事实上通过命令行调用InstallUtil.exe工具进行手动安装都是能正常安装的,但使用InstallHelper()方法就老是会报这个错?

      解决方法:目标平台选为x86即可

    错误提示: “ 未能加载文件或程序集或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。”

    一定要保证服务和调用程序处于相同的.net版本和目标平台下

          

    附:

    【C#】使用ManagedInstallerClass.InstallHelper安装服务的蛋疼问题

     注意四:在Service服务中获取当前程序的运行目录

      之前在winform程序中获取exe程序当前的运行目录,我用的都是 System.Environment.CurrentDirectory 。但今天在测试一个服务程序时,运行时获取到的当前程序运行目录竟然是 “C:WindowsSysWOW64”  ,下面是对各种获取程序当前目录的测试结果:

           protected override void OnStart(string[] args)
            {
                //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
                var str1 = System.Environment.CurrentDirectory;
    
                XueLog("Environment.CurrentDirectory  " + str1);
    
                //获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
                var str2 = System.AppDomain.CurrentDomain.BaseDirectory;
    
                XueLog("AppDomain.CurrentDomain.BaseDirectory   " + str2);
    
                //获取和设置包含该应用程序的目录的名称。
                var str3 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
    
                XueLog("SetupInformation.ApplicationBase   " + str3);
    
            }

    程序运行结果:

    可见,Environment.CurrentDirectory 在Service服务中获取的并不一定是当前exe程序的目录

    转载请注明出处。

  • 相关阅读:
    通过静态广播监听网络变化,在通过回调通知
    支付宝九宫格
    toolBar
    QQ发送位置(高德地图)
    聊天消息 左右item
    Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
    判断软键盘是否弹出 并且隐藏
    Solve Longest Path Problem in linear time
    Why longest path problem doesn't have optimal substructure?
    [leetcode] Reorder List
  • 原文地址:https://www.cnblogs.com/babycool/p/3738948.html
Copyright © 2011-2022 走看看