我有一个.net C#控制台应用程序(不是服务)。它基本上连接到web服务,获取一些xml文件,将这些文件复制到驱动器上的几个位置,验证xml,处理它并将这些对象发送到另一个Web服务。
但是,当主方法存在(并且控制台窗口关闭)时,我仍然可以在任务管理器中看到该过程。
我尝试使用try尝试包围main方法中的所有内容,以捕获ApplicationException,即使一切工作顺利,我仍然无法解决为什么应用程序崩溃...
任何人都知道从哪里开始检查有缺陷的部分?
答案 0 :(得分:4)
查看线程使用情况和异步调用。
答案 1 :(得分:2)
如果控制台窗口已关闭,那么该进程仍在运行似乎非常奇怪。你可以在Visual Studio调试器中附加它吗? (显然是一个调试版本。)
你确定它不是以前仍在执行的运行吗?
答案 2 :(得分:2)
如果您正在调试应用程序,那么我已经看到Visual Studio创建了一个类似于您的应用程序的主机exe的情况,最后使用.vshost.exe。它使用它控制您的应用程序以获得更好的调试体验。完成程序调试后,这个主机exe会保持不变,以便它等待并准备就绪,以便它可以快速启动新的调试会话。
你确定这个exe不是那个徘徊吗?
如果您在没有调试的情况下运行应用程序,那么它是否仍然存在?
答案 3 :(得分:1)
您的应用程序中几乎肯定有一个未终止的线程。正如乔恩所说,用调试器附加,看看哪些线程还活着。
答案 4 :(得分:1)
正如所有其他答案都暗示你可能确实有一个挥之不去的线程,但它不一定是你明确创建的,你可能需要在一个或多个对象上调用Dispose或类似的东西