进程因未处理的异常而终止- 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;

你知道为什么会这样吗?

进程因未处理的异常而终止- Windows服务

在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");