Month: March 2016

  • Methods of .NET self-annihilation part 4: Background Thread Exceptions

    Death by Background Thread Exception (including ThreadPool User Work Items) If you use a thread or ThreadPool.QueueUserWorkItem to run code asynchronously and don’t catch your exceptions inside your WaitCallback, you will bring your entire application down when it breaks. // This code snippet kills your web app process. System.Threading.ThreadPool.QueueUserWorkItem(delegate { var ctx = System.Web.HttpContext.Current; var u =…

  • Methods of .NET self-annihilation part 3: Stack Overflow

    This is another issue that results in Frequent Web Application Restarts, which causes the performance to plunge. Death by Stack Overflow This one is interesting, yet it has nothing to do with StackOverflow.com. The StackOverflowException is one of very few exception classes in .NET that are not catch-able. Scratch that, it’s not possible to “swallow” it in a…

  • Memory Leak in CMS prior to 9.0.2

    This bug appears only in load-balanced / remote events setups for CMS versions between 7.5 and 9.0.2 (released September 14th 2015, in which it was fixed). It’s reported as bug CMS-1405. This memory leak is relatively slow. Because of the way that ASP.NET handles cache, the application’s memory allocation will remain constant while the cache portion…

  • Methods of .NET self-annihilation part 2: IIS ping

    Last post I discussed why Frequent Web Application restarts are bad. This is an issue that can cause you pain trying to get the application back up running again: Death by IIS Ping IIS’ built-in health monitoring is quite simple, but despite it having the word “ping” in its name, it has nothing to do with…