C# 基于控制台的应用程序在某些计算机上意外结束

C# 基于控制台的应用程序在某些计算机上意外结束,c#,.net,C#,.net,我有一个c#.net 4.0程序,它使用httpwebrequest从web收集数据。它在一个由try/catch包围的无休止的循环中运行。该程序只有几个httpwebrequests,一些正则表达式,以及与托管在远程服务器上的Postgresql的通信 我的程序在我的一些计算机上意外地结束了,其中一个发生这种情况的系统是奔腾4 2.8 Ghz,1GB内存运行windows XP,这应该足以运行它的多个实例。我怎样才能知道为什么会发生这种情况 在应用程序中,进行全局重试捕获,并将异常记录在日志文

我有一个c#.net 4.0程序,它使用httpwebrequest从web收集数据。它在一个由try/catch包围的无休止的循环中运行。该程序只有几个httpwebrequests,一些正则表达式,以及与托管在远程服务器上的Postgresql的通信

我的程序在我的一些计算机上意外地结束了,其中一个发生这种情况的系统是奔腾4 2.8 Ghz,1GB内存运行windows XP,这应该足以运行它的多个实例。我怎样才能知道为什么会发生这种情况

  • 在应用程序中,进行全局重试捕获,并将异常记录在日志文件中:

    try
    {
    //all your process
    }
    catch(Exception ex)
    {
    //log exception
    }
    
  • 您是否使用MSI安装了控制台应用程序(它允许您下载要安装应用程序(如Postgresql,framework 4.0)的计算机中所有缺失的程序集)


  • 对我来说,错误是由于缺少程序集或计算机在internet上没有权限…

    记录catch块在开始时引发的异常,或者您的程序,您应该向添加一个处理程序(检查页面中的示例)。在处理程序中,转储在日志文件或任何其他介质中遇到的任何异常。这可能会帮助您发现哪里出了问题。1GB的RAM实际上并没有那么大。你可能有一个不明显的漏洞,它会慢慢吞噬你的内存,这种问题在内存较少的机器上更为明显。试着分析一下你的应用程序。你可以用dotTrace来做