普通应用程序转化成服务程序+服务程序相对路径切换

来源:互联网 发布:推理题目的软件 编辑:程序博客网 时间:2024/05/19 13:29

普通程序转化成服务程序的好处,网上有了一大堆;此处不再解释;当时就是为了让程序常开;又不影响服务器的运行;所以就把应用程序转化成了服务程序。这一部也很简单;就是下载winserver2003的两个工具,然后傻瓜一样进行如下两步操作;http://wenku.baidu.com/view/e0ebb6060740be1e650e9aea.html;就可以把应用程序转变成服务程序;带来了新问题;程序的相对路径变成了windows/system32里面的路径,在程序注册成服务的过程,系统更改我的程序路径;为此当时的程序想要通过读自身文件夹下面的配置文件就变得比较困难。经过各种查资料和瞎蒙;发现两种方法可以解决这个问题;

1)把程序的相对路径也注册一遍,就在服务的parameters子项中新建一个项叫appdirectory,类型时字符型;路径放置应用程序的路径,这样在程序里面运行的时候就自动找到了相对路径下了;程序也不用更改;但是在配置服务时每次都必须多配置一项;

2)就是把以前程序里面的相对路径改成绝对路径,那么需添加两个步骤,首先算出当前程序所属的文件夹currentdirectory,然后再添加配置文件的名字;这样就计算出配置文件的绝对路径,这样就可以完成;以下是第二种方法的代码示例;

using System.Reflection;

using System.IO;

 

string assemblyFilePath = Assembly.GetExecutingAssembly().Location;

string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);

string configFile = assemblyDirPath +\\config.ini;

 

当然从上面两种方法来看,感觉第一种比较简单,不用更改程序,只是在配置的时候多一个步骤;但明显移植性不好;如果一个程序做成服务添加一项,那么1w个程序就需要1w项,明显麻烦许多;第二种方法,就是必须得改代码,把相对路径换算成绝对路径;难点是改代码,但是节省配置服务的时间开销;大家根据自己的喜好自己更改!

要做一个积累的孩纸!^_^

刚发现个严重的问题,用第二种方式完成所有的路径时,有可能也会出现无法打开的问题;所以还是用第一种比较保险吧\(^o^)/~
原创粉丝点击