http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6389|回复: 15

[其他] 写windows服务,想实现服务名字靠读取配置档来生成

[复制链接]
发表于 2013-7-22 10:49:32 | 显示全部楼层 |阅读模式
由于服务工作内容相同,只是名字不同,想服务名字读取配置档来生成,而不是写死在程序里!!请问怎么实现,谢谢各位了


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-22 11:11:43 | 显示全部楼层
安装类里面有// 设定服务名称服务程序的名称
         [code=csharp]   this.sInstaller.ServiceName = "服务名称";[/code]
你直接把服务名称写成读配置文件就行了,
我的文章在
http://www.sufeinet.com/forum.php?mod=viewthread&tid=389这里,不过这里是写死的, 你要想动态的,只需要修改成读配置文件就行了。
 楼主| 发表于 2013-7-22 14:15:03 | 显示全部楼层
站长苏飞 发表于 2013-7-22 11:11
安装类里面有// 设定服务名称服务程序的名称
         
你直接把服务名称写成读配置文件就行了,

您好,我从serviceInstaller中写serviceInstaller1.DisplayName=“testService”;  定义的名字就可以运行


而写成
serviceInstaller1.DisplayName=System.Configuration.ConfigurationManager.AppSettings["SERVICE_NAME"].ToString(); 读取文档的值时,运行服务就报错,为什么呢?
发表于 2013-7-22 14:30:37 | 显示全部楼层
报错? 服务只能在安装是加载名称,不能随便修改的,
上面的方法你写在了什么地方,
报错会不是会是你配置文件没有放对地方呀,
发表于 2013-7-22 14:31:09 | 显示全部楼层
zyn3217456 发表于 2013-7-22 14:15
您好,我从serviceInstaller中写serviceInstaller1.DisplayName=“testService”;  定义的名字就可以运行 ...

你先测试一下你的配置名称能不能读到
 楼主| 发表于 2013-7-22 14:33:15 | 显示全部楼层
yangying 发表于 2013-7-22 14:30
报错? 服务只能在安装是加载名称,不能随便修改的,
上面的方法你写在了什么地方,
报错会不是会是你配 ...

就放在服务安装程序的开头
  public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            InitializeComponent();
            serviceInstaller1.DisplayName = System.Configuration.ConfigurationManager.AppSettings["SERVICE_NAME"];
            serviceInstaller1.ServiceName = System.Configuration.ConfigurationManager.AppSettings["SERVICE_NAME"];

        }
    }

 楼主| 发表于 2013-7-22 14:36:28 | 显示全部楼层
如果不对,请问应该写在哪里呢,怎样实现读取配置文档的名字来命名服务
发表于 2013-7-22 14:37:21 | 显示全部楼层
zyn3217456 发表于 2013-7-22 14:33
就放在服务安装程序的开头
  public partial class ProjectInstaller : System.Configuration.Install.I ...

报的什么错误发一下看看
 楼主| 发表于 2013-7-22 14:50:01 | 显示全部楼层
service name contains invalid characters,is empty,or is too long(maxlength=80).
可以我配置文件的名字不长啊也,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
    <add key="SERVICE_NAME" value="TCP_8000"/>
    <add key="DISPLAY_NAME" value="TCP_8000"/>
  </appSettings>
</configuration>

 楼主| 发表于 2013-7-22 14:50:27 | 显示全部楼层
yangying 发表于 2013-7-22 14:37
报的什么错误发一下看看

service name contains invalid characters,is empty,or is too long(maxlength=80).
可以我配置文件的名字不长啊也,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
    <add key="SERVICE_NAME" value="TCP_8000"/>
    <add key="DISPLAY_NAME" value="TCP_8000"/>
  </appSettings>
</configuration>

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-17 10:04

© 2014-2021

快速回复 返回顶部 返回列表