Windows Forms application crash without any message

maxambrogi 6 Reputation points
2022-08-30T14:13:13.357+00:00

Hello,
I have developed a windows forms app to copy document from web repository to another one.
The application works fine but after 5 hours (and > 20k documents copied) it crash without any useful info.
For sure the copy code is inside a try/catch block .
I have also followed the info here:
https://learn.microsoft.com/it-it/dotnet/api/system.windows.forms.application.setunhandledexceptionmode?view=windowsdesktop-6.0
https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.application.threadexception?view=windowsdesktop-6.0
and added the support for the large object: <configuration><runtime><gcAllowVeryLargeObjects enabled="true" /></runtime>.
The os is windows 10 and the .net framework is 4.7.2.

Questions:

  1. how i can understand what happens ? there are insight from the OS or his event viewer??
  2. how i can update/make better my c# code to manage this situation?
  3. there are some best practice to follow?
  4. there is a way to intercept the kill of the process ?

Thanks and regards
Massimiliano

Windows Forms
Windows Forms
A set of .NET Framework managed libraries for developing graphical user interfaces.
1,827 questions
{count} votes

3 answers

Sort by: Most helpful
  1. Michael Taylor 47,966 Reputation points
    2022-08-30T14:50:04.813+00:00

    Enabling large object support isn't needed here unless your code is not properly managing resources. You didn't post any relevant code so we have no way of knowing that.

    1. Ensure any IDisposable objects are being properly cleaned up.
    2. If you are connecting to a remote server using HttpClient then ensure you aren't creating new instances all the time or you will run out of resources.
    3. If the remote server requires authentication then, depending upon the authentication, your credentials may be expiring. You need to handle that case.
    4. Just because you're using try-catch doesn't mean you're actually handling the errors. This is a false assumption that people have. Without seeing your code we cannot say whether your try-catch is actually doing anything useful or not.
    5. Out of the box (without you changing the unhandled exception settings) then Winforms will automatically display a UI when an error occurs. Don't override this so you can see the UI message.
    6. Network communications are not reliable so it is possible your connection to the client is lost. Your code needs to handle reconnecting in this case.
    7. Event log should show any runtime error as should the Windows Error Reporting tool.
    8. Using Process Explorer to monitor your app while it is running will help indicate if you have a memory or resource leak which could bring the app down.
    0 comments No comments

  2. maxambrogi 6 Reputation points
    2022-08-30T14:58:00.583+00:00

    @Michael Taylor ,thanks for the suggestions, i will check points 2) , 6) , 8).
    About point 7) how i can better understand what you mean? I haven't find any info in the event log.

    0 comments No comments

  3. Olaf Helper 40,741 Reputation points
    2022-08-31T05:42:14.19+00:00

    how i can update/make better my c# code to manage this situation?

    How could we suggest without knowing any kind of detail about your implemention? You didn't provide any detail about it.
    Common issue is to "ignore" existing Dispose methods to release resources like memory.

    0 comments No comments