开发者社区> 问答> 正文

windows 服务程序的问题,折腾的只剩下半条命了:报错

是这样的,我有个控制台程序,这个程序的功能是写日志,Socket,以及数据库操作还有其他的。数据库操作是用的mysql自带的api,需求是把这个程序设置为开机自启动的,所以选择了windows 服务程序中创建进程的方式,这个进程就是我这个控制台程序。现在的问题的是:

1:读取日志失败,获取当前路径发现是Windows\system32下。有人建议用绝对路径,因为后来启动服务程序的时候直接控制台程序窗口都没有了(之前还可以,不知道什么原因),不能看输出,所以不知道是否成功了。

2:数据库连接失败;由上面的问题猜想是路径问题,但是我mysql头文件和lib文件用的是环境变量MYSQL_HOME,也相当于是绝对路径了,而且,我吧libmysql.dll也复制到了系统路径下,还是老样子。

求大神 解决问题

1:在现在的程序的基础上,怎么处理?

2:如果不在服务里面创建进程,在服务里面创建线程,这个线程功能就是之前的控制台的exe程序.这个会不会还有以上问题。对于这个问题,应该先试试再发问,但是现在由于时间不多,所以要把问题上报所以想先得到大神们的肯定直接上报然后再尝试

展开
收起
kun坤 2020-06-06 23:10:51 567 0
1 条回答
写回答
取消 提交回答
  • 你这是win32程序还是.net程序?
    win32程序可以先用GetModuleHandle(NULL)获得程序exe的路径,然后取目录就能获得当前的程序所在目录。.net程序的话可以用System.Reflection.Assembly.GetExecutingAssembly()获得当前程序所在路径。

    ######  你可以启动以后更改当前工作目录(在你打开任何文件之前),就不会在system的目录下面了,服务肯定是没有控制台了,如果可以的话,你可以实现各telnet服务在里面,通过telnet打印数据
    2020-06-06 23:10:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《云服务器运维之Windows篇》 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载