Latest Microsoft Blogs

Browse by Tags

Related Posts

  • Troubleshooting a performance issue with Failed Request Tracing and appcmd in IIS7

    I know I'm a little late in the game, but I decided that after vacation it was finally time for me to install Windows 2008 on my Vista box and play around with some of the IIS 7 features like Failed Request Tracing (known as FRT or FREB) and the appcmd tool. I wanted to show you an alternative way of troubleshooting Lab 1 (hang scenario) from my Debugging Lab series using Failed Request Tracing and appcmd so here are some things I will go through in this post Setting up failed request tracing Listing executing requests with appcmd Using Page.Trace with failed request tracing Setting up different FREB rules and looking at the differences between them Short notes about failed request tracing Failed request tracing comes with IIS7. It works...


  • 100% CPU in vbc.exe when compiling large vb.net web applications in Microsoft Visual Studio 2008

    We just released a hotfix for an issue where you get 100% CPU in vbc.exe when compiling large applications in Microsoft Visual Studio 2008. Apart from the 100% CPU situation you may also notice symptoms like visual studio taking a very long time to return or error messages like Error 246 Timed out waiting for a program to execute. The command being executed was "C:\Windows\Microsoft.NET\Framework\v3.5\vbc.exe" /noconfig @"C:\TempFiles\MyApp\8ec39ce7\e41b4e32\gpznqwbu.cmdline". or C:\MyProjects\MyPage.aspx(4): Build (web): Object '/32eba493_7a69_40af_bfe6_52887ab07396/jdkqqpvt_pufe5n+ogossdnv_258.rem' has been disconnected or does not exist at the server. The issue will not appear if you set debug="false"...


  • ASP.NET Case Study: Deadlock waiting in GetToSTA

    This is an issue I come across once in a while and since I am not a COM expert by any means I actually had to check in with our COM guys to see what was going on in this case, and as it turned out (this is embarrassing:)) I had already written about the root cause of this issue before ( here ).  So what I am learning from this is that perhaps I should at least check my blog before asking questions:) Problem description Intermittently the application will stall, so all requests will hang until they run an IIS Reset. At this point the CPU usage for the process is very low. Gathering memory dumps A memory dump was gathered using Debug Diagnostics 1.1 , by right clicking on the w3wp.exe process and choosing "Create Full Userdump"...


  • CLR Inside Out: Large Object Heap Uncovered

    In many of my posts I have discussed performance issues and memory issues caused by excessive use of the Large Object Heap, here are a few examples... ASP.NET Case Study: High CPU in GC - Large objects and high allocation rates ASP.NET Case Study: Bad perf, high memory usage and high CPU in GC - Death By ViewState Maoni just wrote a nice article in MSDN Magazine called CLR Inside Out: Large Object Heap Uncovered , it is definitely worth a read if you are interested in how the GC works and specifically why the GC heaps are split into small object heap segments and large object heap segments. Read More...


  • The 21 most popular blog posts

    I started this blog 2.5 years ago today, mostly because I felt that the same types of issues came up over and over and over in our support cases. I figured that if I started writing about them, a lot of people would be able to resolve them on their own, or even better avoid them in the first place. A lot of water passed under the bridge since then, but looking back at some of those earlier posts they are still very applicable today, and they still seem to continue to get a lot of hits. Here is a list of the 21 most popular ones... ASP.NET 2.0 Crash case study: Unhandled exceptions ASP.NET Case Study: Lost session variables and appdomain recycles ASP.NET Memory: If your application is in production… then why is debug=true .NET Memory Leak Case...


  • DebugDiag 1.1 or Windbg, which one should I use? and how do I gather memory dumps

    If you have read any of my posts you have probably noticed that I am very partial to windbg and the debugging tools for windows. I often get friendly nudges from the developers of debugdiag when I suggest using adplus and windbg on internal discussion lists, and to be fair I have to beat on the drum a bit for debug diag as well. My answer to the question "Should I use DebugDiag 1.1 or Windbg" is both... it just depends on the scenario. I often lean towards windbg but to a large extent that is because that is what I use all the time, so in many cases where both fit the bill equally well I simlply haven't invested the time to see how it can be done with debug diag and therefore I suggest what I know works. Before I start the comparison...


  • ASP.NET Performance issue: Large number of application restarts due to virus scanning

    Issues caused by frequent application restarts are pretty common. If you are interested in what causes application restarts in general, and how you can monitor application restarts and what causes them you should read this post: ASP.NET Case Study: Lost session variables and appdomain recycles The most recent one was one where the ASP.NET site would respond slowly at regular intervals (read: it grinded to a halt every few hours). First shot at gathering data: We started off by getting a memory dump with debug diag when the process was responding slowly. Unfortunately at the time that the dump was taken no requests were executing (i.e. ~* e !clrstack showed no managed stacks and ~* kb showed all the threads in their idle states), so we didn't...


  • ASP.NET Hang: Authenticode signed assemblies

    When you use authenticode signed assemblies in an application, the application needs to go out and check the certificate revocation lists (CRLs) to verify that the signature is still valid the first time it loads up the authenticode signed assembly. If the server, serving your asp.net application, doesn't have internet access or if the internet connection is slow this can lead to issues where you stall the process during startup or when the assembly in question first loads. What you will typically see is a thread loading up an assembly with a callstack like this: 0:026> kL 200 ChildEBP RetAddr 0e82c1b4 7c822124 ntdll!KiFastSystemCallRet 0e82c1b8 77e6bad8 ntdll!NtWaitForSingleObject+0xc 0e82c228 73ca64ec kernel32!WaitForSingleObjectEx...


  • Does interrupting GC.WaitForPendingFinalizers interrupt finalization?

    I got a question the other day around calling GC.Collect and GC.WaitForPendingFinalizers. The issue revolved around a problem where the finalizer was blocked and where the application would call GC.Collect() and GC.WaitForPendingFinalizers() which then caused the thread that called GC.WaitForPendingFinalizers() to hang, and the question was If we interrupt the thread that calls GC.WaitForPendingFinalizers() will this also interrupt the finalizer thread, i.e. unblocking the finalizer? I would be very surprised if it did, but I can see where the question came from as the msdn documentation for GC.WaitForPendingFinalizers is a bit ambigous. When the garbage collector finds objects that can be reclaimed, it checks each object to determine the object's...


  • How does the GC work and what are the sizes of the different generations?

    During our ASP.NET debugging chat there were many questions around the GC and the different generations. In this post I will try to explain the basics of how the GC works and what you should think about when developing .net applications in relation to the GC. First off, there is already a lot written about the .net Garbage Collector. One of the best resources regarding how the GC works and how to program efficiently for the GC is Maoni’s blog . She hasn’t written anything since May 2007 but all the posts on her blog are still very relevant since the GC hasn’t really changed enough that it makes a difference as far as .net developers should be concerned. Maoni had a presentation at the 2005 PDC about the GC and unfortunately her link to the presentation...


Page 1 of 2 (18 items) 1 2 Next >
Microsoft Communities