ASP.NET 2.0
W3SVC Deadlock Detected by Debug.Assert in ASP.NET 2.0
by mysticslayer on Nov.25, 2010, under ASP.NET 2.0, iis, Programming, W3SVC
After a hard day with some errors failing a production server at a customer I had to find out what caused all these troubles… Well I had alot of messages in the Application Log with the messages ViewState verification failed… what’s causing all these messages? Well I had to find it out… So after some research it could be alot of things that causing these messages, but I couldn’t find out which one it was…
Till I found another error message in the System Log… these messages caused a Deadlock on the Thread, and if this happens IIS will create a new Thread that will continue, but after 20 deadlocks IIS went down… hmm odd, so I found out that this came from the application. And it came from the System.Diagnostics.Debug.Assert, but huh, I thought that I had delivered a Release version. Well maybe, maybe not. So I knew for some reason this was causing all these messages.
Well I thought that I could kill these messages by setting debug=”false”, well I can assure you, that won’t work. I had that figured out the next day, when the Administrator called me that the production server went down every 5 to 10 minutes… hmm so I called Edward Bakker, and asked him if he had a solution. After some talking with each other and Internet by hand I searched and came out by the blog of Scott Hanselman. And he had the solution for my problem.
This problem can cause severe damage and it seems to be a bug in ASP.NET 2.0… Thanks to Scott and Edward I managed to figure it out.
Link to blogpost by Scott Hanselman: http://www.hanselman.com/blog/PreventingDialogsOnTheServerSideInASPNETOrTraceFailConsideredHarmful.aspx