进程因未处理的异常而终止- Windows服务
本文关键字:终止 Windows 服务 异常 未处理 进程 | 更新日期: 2023-09-27 18:14:09
所以我创建了一个服务,它每隔x分钟检查一次服务器,并从服务器接收一个回复。回复要么是睡眠,要么是命令。接收到扫描命令后,该服务打包并装载文件并将它们发送到服务器。在调试模式下,我的应用程序运行得非常好。我可以步进代码,一切都被触发,因为它应该和客户端和服务器之间的通信是完美的。
然而。在部署我的服务时,它会在收到扫描命令时崩溃。我已经查看了windows事件查看器,发现了这个:
Application: Client.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info:
System.Net.WebException Stack: at
System.Net.FtpWebRequest.GetRequestStream() at
tcpClient.ftpClass.upload(System.String, System.String) at
Client.Service1.checkInCycle(System.String) at
Client.Service1.Callback(System.Object) at
System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object) at
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) at
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean) at
System.Threading.TimerQueueTimer.CallCallback() at
System.Threading.TimerQueueTimer.Fire() at
System.Threading.TimerQueue.FireNextTimers() at
System.Threading.TimerQueue.AppDomainTimerCallback()
在FTPWebRequest中,我能想到的唯一可能的故障点是超时值,但我已将其更改为无限使用:
request.Timeout = -1;
你知道为什么会这样吗?
在FTPWebRequest中我能想到的唯一可能的故障点是timeoutVal
根据msdn System.Net.FtpWebRequest.GetRequestStream()
可以抛出这些异常:
-
InvalidOperationException
-
WebException
-
ProtocolViolationException
.
你提供的异常信息明确指出你遇到了WebException
:
异常信息:System.Net.WebException
根据我之前提到的msdn文章
无法建立与FTP服务器的连接。
您应该检查的可能原因:
- FTP服务器离线或无法访问
- FTP主机和/或端口不正确。
- FTP用户凭证是必需的,要么没有提供,要么不正确。
考虑到您调试它没有任何问题,并且您只是在部署后才遇到它,我认为您的FTP服务器可能无法从您部署服务的环境中访问。
加上CodingFeles的话:
应该指出,这是一个愚蠢的错误造成的不少于10小时的编程,直到上午9点....Ie。在这一点上,我脑残了,没有意识到就引入了错误:
这个错误是由于一些愚蠢的原因,我不小心注释掉了FTP过程的网络凭据,这就是一切的根源。
并不是说这将是你的解决方案,如果你也面临这个问题…但是请确保您有正确的服务器网络凭据,并且它们实际上是通过:
传递的。request.Credentials = new NetworkCredential("user", "pass");