zoukankan      html  css  js  c++  java
  • 6.28 Windows Serviece

    描述:

    A 软件,已经注册了一个windows服务并启用,现在需要在服务自己的一个类B里增加一个字段,服务的作用是返回一个该类型B的实例

    做法

    增加字段,替换服务文件,重新注册服务并开启,但是在A软件内的服务类型还是老版本的,返回的B类型数据有新加的字段,但是A软件内服务引用的接受数据的类型还是老类型,没有没有新加的字段.

    windows服务

    能创建可长时间运行的可执行应用程序

    体系结构

    创建Windows服务

    以编程方式编写服务

    2 用SV模板创建服务

    两种方式都要做以下事情

    • 设置 ServiceName 属性。

    • 为你的服务应用程序创建必要的安装程序。

    • 替代并指定 OnStart 和 OnStop 方法的代码,以自定义你的服务的行为方式。

    • 添加服务应用程序所必需的安装程序
    • 通过从“生成”菜单选择“生成解决方案”来生成你的项目
    • 安装服务

    添加服务应用程序所必需的安装程序

      切换到设计,右键添加安装程序

      界面上生成两个文件serviceInstaller1,serviceProcessInstaller1

      一个可以调整服务启动类型,一个设置账户可访问权限

      ServiceProcessInstaller 组件适用于项目中的所有单个服务安装程序。

      添加的安装程序和你的服务主体之间好像没有啥关系,只是记录一下这个服务的

    安装windows服务(由类生成的服务)

    管理员方式打开vstool下的VS2012 开发人员命令提示,cd到exe目录下,installutil xxx.exe(普通管理员的cmd不行)

    然后就安装,启动服务

    (我的测试程序是open一个文件,但是文件没被打开,手动再打开会显示文件被占用,可能这个服务一点界面相关的都不能有)

    结论

    windows服务不同于普通的exe执行文件,周期决定于应用程序,windows服务的生命周期长

    用installutil方式将应用程序注册为服务

    关于问题:

    为什么服务更新不对?

    因为我更改了服务地址:原来是http://192.168.40.31:8400/ACal/BaseService/mex

    后来我注册的服务的地址是:http://192.168.40.31:8700/ACal/BaseService/mex

    本机上注册的服务端口改变了,软件引用一个没有服务的地址,自然更新不了服务

  • 相关阅读:
    objective-C nil,Nil,NULL 和NSNull的小结
    Calendar控件点击下个月按钮后,本月标记的各个具体天的样式都取消
    如何让Button的Text垂直居中显示
    html基础总结2
    html基础总结1
    html基础总结
    微信空白页获取用户openid
    网址
    网站式更新后台代码
    JavaScriptSerializer引用
  • 原文地址:https://www.cnblogs.com/swobble/p/7088566.html
Copyright © 2011-2022 走看看