为什么我的程序在debug下可以运行,单独拿出来就运行不了呢

时间:2022-01-29 04:28:32
最近在做公司项目,用VS2010+C#+WPF做的,数据实时显示界面,程序运行也良好,在VS中F5运行,除了有一点卡之外(在实时显示界面用了定时器,5秒刷新一次数据),其他的没有什么问题。但是当我双击文件目录下的可执行程序运行时,首次运行没问题,也很流畅,但当我关闭重新运行时就会出现程序已停止工作的错误,调试的时候报数据库连接池已满的错误,重启电脑后首次运行也可以,关闭后打开就会出现同样的问题,烦请各位高手能帮忙解决一下。(怎么不能发截图呢....)

11 个解决方案

#1


学不会WxF的飘过 为什么我的程序在debug下可以运行,单独拿出来就运行不了呢

#2


额,我也是刚接触不久

#3


数据库没有 close

#4


引用 3 楼  的回复:
数据库没有 close

好像我数据库操作都close过得,如果数据库没有close的话,我F5在VS里运行是没有问题的呀

#5


我又发现一个新问题,每当我首次在双击exe可执行文件的时候,会在后台产生一个进程,当我关闭程序的时候进程不会关闭,强制结束也结束不了 为什么我的程序在debug下可以运行,单独拿出来就运行不了呢

#6


引用 5 楼  的回复:
我又发现一个新问题,每当我首次在双击exe可执行文件的时候,会在后台产生一个进程,当我关闭程序的时候进程不会关闭,强制结束也结束不了

这个进程是可执行程序.vshost32.exe,这个是干嘛的,怎么不能结束呢

#7


是不是少了DLL文件啊?

#8


1、可能是数据库的问题吧,EXPRESS版本的SQL数据库有一个关闭时间。
2、.vshost32.exe是VS的调用进程,在VS下调试时(C#程序不论Debug还是Release)你应用程序的进程都是它的子进程,这样你才能随时暂停或取消你的应用程序,你的应用程序结束,那个进程自动结束。你说那个进程每关可能是你应用程序的某个子进程或者什么后台线程没有关闭导致的,很有可能跟数据库有关

#9


引用 6 楼  的回复:
引用 5 楼  的回复:

我又发现一个新问题,每当我首次在双击exe可执行文件的时候,会在后台产生一个进程,当我关闭程序的时候进程不会关闭,强制结束也结束不了

这个进程是可执行程序.vshost32.exe,这个是干嘛的,怎么不能结束呢

额,我知道这个是干嘛的了,只要在VS的IDE中用DEBUG MODE run过程序,只要VS不关闭进程就会一直存在,调试代码用的。。貌似和我的问题没有关系

#10


引用 8 楼  的回复:
1、可能是数据库的问题吧,EXPRESS版本的SQL数据库有一个关闭时间。
2、.vshost32.exe是VS的调用进程,在VS下调试时(C#程序不论Debug还是Release)你应用程序的进程都是它的子进程,这样你才能随时暂停或取消你的应用程序,你的应用程序结束,那个进程自动结束。你说那个进程每关可能是你应用程序的某个子进程或者什么后台线程没有关闭导致的,很有可能跟数据库有关

嗯,谢谢你的解答,不过我用的是SQL server2005不是express版本的,以前的程序都没有出现过这个问题,不知道这次到底是怎么引起的

#11


引用 8 楼  的回复:
1、可能是数据库的问题吧,EXPRESS版本的SQL数据库有一个关闭时间。
2、.vshost32.exe是VS的调用进程,在VS下调试时(C#程序不论Debug还是Release)你应用程序的进程都是它的子进程,这样你才能随时暂停或取消你的应用程序,你的应用程序结束,那个进程自动结束。你说那个进程每关可能是你应用程序的某个子进程或者什么后台线程没有关闭导致的,很有可能跟数据库有关

貌似真的是数据库的问题,我换了一个数据库就不会出现之前的问题了,但还有点奇怪的是这两个数据库的数据结构完全一致,就是所在IP不一致,结果竟然不同,搞不懂呢,正在查是什么原因,谢谢了哈

#1


学不会WxF的飘过 为什么我的程序在debug下可以运行,单独拿出来就运行不了呢

#2


额,我也是刚接触不久

#3


数据库没有 close

#4


引用 3 楼  的回复:
数据库没有 close

好像我数据库操作都close过得,如果数据库没有close的话,我F5在VS里运行是没有问题的呀

#5


我又发现一个新问题,每当我首次在双击exe可执行文件的时候,会在后台产生一个进程,当我关闭程序的时候进程不会关闭,强制结束也结束不了 为什么我的程序在debug下可以运行,单独拿出来就运行不了呢

#6


引用 5 楼  的回复:
我又发现一个新问题,每当我首次在双击exe可执行文件的时候,会在后台产生一个进程,当我关闭程序的时候进程不会关闭,强制结束也结束不了

这个进程是可执行程序.vshost32.exe,这个是干嘛的,怎么不能结束呢

#7


是不是少了DLL文件啊?

#8


1、可能是数据库的问题吧,EXPRESS版本的SQL数据库有一个关闭时间。
2、.vshost32.exe是VS的调用进程,在VS下调试时(C#程序不论Debug还是Release)你应用程序的进程都是它的子进程,这样你才能随时暂停或取消你的应用程序,你的应用程序结束,那个进程自动结束。你说那个进程每关可能是你应用程序的某个子进程或者什么后台线程没有关闭导致的,很有可能跟数据库有关

#9


引用 6 楼  的回复:
引用 5 楼  的回复:

我又发现一个新问题,每当我首次在双击exe可执行文件的时候,会在后台产生一个进程,当我关闭程序的时候进程不会关闭,强制结束也结束不了

这个进程是可执行程序.vshost32.exe,这个是干嘛的,怎么不能结束呢

额,我知道这个是干嘛的了,只要在VS的IDE中用DEBUG MODE run过程序,只要VS不关闭进程就会一直存在,调试代码用的。。貌似和我的问题没有关系

#10


引用 8 楼  的回复:
1、可能是数据库的问题吧,EXPRESS版本的SQL数据库有一个关闭时间。
2、.vshost32.exe是VS的调用进程,在VS下调试时(C#程序不论Debug还是Release)你应用程序的进程都是它的子进程,这样你才能随时暂停或取消你的应用程序,你的应用程序结束,那个进程自动结束。你说那个进程每关可能是你应用程序的某个子进程或者什么后台线程没有关闭导致的,很有可能跟数据库有关

嗯,谢谢你的解答,不过我用的是SQL server2005不是express版本的,以前的程序都没有出现过这个问题,不知道这次到底是怎么引起的

#11


引用 8 楼  的回复:
1、可能是数据库的问题吧,EXPRESS版本的SQL数据库有一个关闭时间。
2、.vshost32.exe是VS的调用进程,在VS下调试时(C#程序不论Debug还是Release)你应用程序的进程都是它的子进程,这样你才能随时暂停或取消你的应用程序,你的应用程序结束,那个进程自动结束。你说那个进程每关可能是你应用程序的某个子进程或者什么后台线程没有关闭导致的,很有可能跟数据库有关

貌似真的是数据库的问题,我换了一个数据库就不会出现之前的问题了,但还有点奇怪的是这两个数据库的数据结构完全一致,就是所在IP不一致,结果竟然不同,搞不懂呢,正在查是什么原因,谢谢了哈