Microsoft Visual Studio 2008 可以运用OS之API开发Windows服务程序,但.NET3.5不内置InstallUtil.exe。

自从.NET2.0才开始内置InstallUtil.exe安装程序,.NET3.5下该应用程序位于“C:\Windows\Microsoft.NET\Framework\v2.0.50727”下。

可以运用“Visual Studio 2008 命令提示”或“CMD”命令行安装你开发的Windows服务程序,笔者建议用前者安装。

以上在Windows XP下安装一切正常,只要是以管理员身份就OK。

但Windows7下,我虽已管理员身份运行,还是会报权限、无法访问、日志创建错误等奇怪的错误。

可在“开始-》所有程序-》Microsoft Visual Studio 2008-》Visual Studio Tools-》Visual Studio 2008 命令提示”

下输入此命令安装或卸载服务。

安装:InstallUtil "服务程序路径"

卸载:InstallUtil /u "服务程序路径"

以下介绍另外一种安装VS2008开发的服务程序。利用SC……

描述:
        SC 是用于与服务控制管理器和服务进行通信的命令行程序。

安装:sc create JUNFEIservice binPath= "服务程序路径"

卸载:sc delete JUNFEIservice

备注:安装时选 项名称包括等号。
等号和值之间需要一个空格。】
用法:
        sc <server> [command] [service name] <option1> <option2>.


        选项 <server> 的格式为 "\\ServerName"
        键入 "sc [command]" 可以获得有关命令的进一步帮助
        命令:
          query-----------查询服务的状态,
                          或枚举服务类型的状态。
          queryex---------查询服务的扩展状态,
                          或枚举服务类型的状态。
          start-----------启动服务。
          pause-----------向服务发送 PAUSE 控制请求。
          interrogate-----向服务发送 INTERROGATE 控制请求。
          continue--------向服务发送 CONTINUE 控制请求。
          stop------------向服务发送 STOP 请求。
          config----------更改服务的配置(永久)。
          description-----更改服务的描述。
          failure---------更改服务失败时执行的操作。
          failureflag-----更改服务的失败操作标志。
          sidtype---------更改服务的服务 SID 类型。
          privs-----------更改服务的所需权限。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询失败时服务执行的操作。
          qfailureflag----查询服务的失败操作标志。
          qsidtype--------查询服务的服务 SID 类型。
          qprivs----------查询服务的所需权限。
          qtriggerinfo----查询服务的触发器参数。
          qpreferrednode--查询首选的服务 NUMA 节点。
          delete----------(从注册表)删除服务。
          create----------创建服务(将其添加到注册表)。
          control---------向服务发送控制。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          showsid---------显示相应于假定名称的 SID 字符串。
          triggerinfo-----配置服务的触发器参数。
          preferrednode---设置首选的服务 NUMA 节点。
          GetDisplayName--获取服务的 DisplayName
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务的依存关系。

        下列命令不要求服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad) 指示是否将上一次启动保存为
                          最近一次已知的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService

以上是自行摸索的,费了我不少劲呢,希望对未来有需要的IT朋友们会有帮助,哈哈。

posted on 2010-05-28 10:41  GT_Andy  阅读(712)  评论(0编辑  收藏  举报