我有3个独立的Windows服务项目完全相同的事情。 唯一的区别是每个项目文件在app.config中都有不同的连接string设置。 我正在计划巩固服务项目,使之更易于pipe理。 什么是最好的方法?
当前scheme:
3 win服务>每6分钟执行一次>命中3个不同的数据库>收集数据>生成XML>将XML发送到FTP。
预期结果:
:: FindWindow从服务应用程序失败
检查用户是否有权启动Windows服务的命令
如何使用命令行更改Windows服务的启动types
检查服务是否存在bash(CentOS和Ubuntu)
注册一个Java应用程序(或者执行应用程序的一个蝙蝠)作为Windows服务的最快方法是什么?
1 win服务>每6分钟执行一次>打3个不同的数据库>收集数据>生成XML>将XML发送到FTP。
从网站重新启动Windows服务
Windows服务是一个必须运行Windows的embedded式系统上与硬件交互的“正确”select吗?
使用installutil从具有多个服务的可执行文件安装单个服务
从Windows服务安全地存储数据的位置?
WTSQueryUserToken总是抛出“试图引用一个不存在的令牌”在Windows 7上在C#
所以他们都做同样的事情,禁止有不同的连接字符串 – “简单”。
在你的配置中创建一个新的应用程序设置在“模式”的配置或相同的东西,并用逗号分隔的值,例如:
<configuration> <appSettings> <add key="schema" value="connection1,connection2,connection3"/> </appSettings> </configuration>
然后在您的模式应用程序设置键中,确保您拥有每个连接的键
<connectionStrings> <add name="connection1" connectionString="your_connection_string" providerName="the_providor"/> <add name="connection2" connectionString="your_connection_string" providerName="the_providor"/> <add name="connection3" connectionString="your_connection_string" providerName="the_providor"/> </connectionStrings>
在你的OnStart中做一些如下的事情 – 考虑一下睡眠或者线程迭代是需要被放进去的,但是你明白了:
protected override void OnStart(string[] args) { string[] schemaList = ConfigurationManager.AppSettings["schema"].Split(",".tochararray()); foreach (string schema in schemaList) { // do your stuff... }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。