我对接了个接口,更新自己数据库的积分。
为什么我的程序在控制台可以运行完毕并且更新完毕,但写成windows服务就会报错呢? 我在日志里面看到“未将对象引用设置到对象的实例”。在控制台就可以运行完的呀,也调试过没有问题,复制到windows服务就不行了,就其中的一个方法有时会出错。
具体报错在 执行存储过程的时候报错,但存储过程执行成功了,因为数据库有影响了,但后面的方法就不继续执行了。
把堆栈信息记下来,不要动不动自己写日志,学着用成熟可靠的模块,人类的进步就是工具的进步,有很好的工具就要去用,比如log4net;你在外层捕获一下异常,扔给日志,这样就有了堆栈信息,有了堆栈信息就很容易定位代码位置,然后你就更容易分析找到问题了。
我调试了,我上面的回复有了新图片,参数也没错,在控制台可以执行完,在windows服务就不行了,真的头疼...
看看DBAccess.ExecuteCheck(sql)方法中, 是不是获取不到数据库的配置信息了。 记录 ex.ToString()应该会有更详细的信息,包括行号。
我抛出了sql语句 都没问题的...
在本机安装下你的服务。然后附加到进程调试,进程选择此服务。调试,跟踪一下。
执行到这里的时候,按F11下一步出错,我的参数都没有错的呀...
@如梦如烟: 提示什么错误?
解决了,就是在DB类的cmd.ExecuteScalar(); 这里 ,不需要toString和return !!! 真的无语...