Browse by Tags - ASP.NET Debugging - Site Home - MSDN Blogs

ASP.NET Debugging

Debugging from an ASP.NET and Azure Engineer. Posts are from customer issues and things I feel may be useful.

Browse by Tags

Tagged Content List
  • Blog Post: ASP.NET Tip: Understanding the caching of data in SOS

    The sos that comes with the debugger, in the clr10 directory, has a lot of additional features and speed improvements for .NET 1.x troubleshooting. One of the main ways it does this is by caching the data that is gathered from !DumpHeap -stat. This is something important to remember if something happens...
  • Blog Post: ASP.NET Tips: Careful Use of Static's

    Not sure how many people realize it, but when you start dealing with multiple users access a system (in this case a web server), you have to be very careful what you store in static's (global variables).  This is because all the users will have access to this data and so if you create a page, you...
  • Blog Post: Improving Time-Critical Code written in C

    Writing web pages is very similar to writing any other type of code.  You have to understand how it is going to be used and where you need to really make things run as quickly as possible. There are a number of tips on this blog already that deal with managed code and ways to optimize it. ...
  • Blog Post: ASP.NET Tip: Keep hidden files hidden

    I have seen a few cases of this so I wanted to let everyone know.  If you install the FrontPage Server Extensions (FPSE) on a web server, it will install some configuration files in a directory under your web site called _vti_cnf.  This folder contains a bunch of files that FPSE use to update...
  • Blog Post: ASP.NET Tip: ASP.NET MSDN Site

    Have you checked out the MSDN site for ASP.NET lately?  It is full of useful information.  You can find it at the ASP.NET Developer Center .  My favorite things to check out are the “How Do I” videos.  They can be really helpful and can get you started on a specific topic.  Check...
  • Blog Post: ASP.NET Tips: Loading a DLL out of the bin directory

    Question A customer has created a web project which references a class library project.  When deployed to the local machine the web/classes all work fine.  When deployed to a ‘shared’ IIS site, the class DLLs exist in the /bin folder, but the web page generates an error: can’t find file “Documents...
  • Blog Post: ASP.NET Tips: Using Process Explorer to help with high CPU

    I am not sure how many people are familiar with the great tools that Mark and the Sysinternals folks have created, but this is one that is a must for monitoring the performance of your machine.  It is called Process Explorer .  With it, you can see what is taking up your CPU time in real time...
  • Blog Post: ASP.NET and Performance

    I wanted to talk about monitoring performance in ASP.NET for a bit.  I have already posted a few postings that talk around this issue, namely: ASP.NET Debugging - High Memory part 5 – Fragmentation ASP.NET Debugging - ASP.NET Tips- How to use DebugDiag to track down But there are some other things...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot

    So now that I am done with all the individual posts, I thought I would wrap them all together.  So here are all of the posts that I created on gathering information when you are having a problem. Please keep in mind that these are geared towards the type of information you would be sending to Microsoft...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot - part 6 - Recycle due to memoryLimit

    Here is another situation that you may come across and what to do in order to gather information about it. The following steps will configure DebugDiag to automatically capture a memory dump of the ASPNET_WP.exe process recycling when it exceeds the memoryLimit.  This only applies to the ASPNET_WP...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot - part 5 - OutOfMemoryException

    So we already talked about what to gather when you are experiencing high memory .  But what if you are actually getting a System.OutOfMemoryException?  Here is how you capture a dump at the time you are running out of memory. The following steps will configure DebugDiag to automatically capture...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot - part 3a - Crash revisited

    In the previous post around capturing a dump for a crash, we were talking about using DebugDiag .  But what if we can't use this tool.  There are various reasons for this, maybe we don't want to have it installed on the server, or maybe we are trying to capture a 64-bit process (which DebugDiag...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot - part 4 - Deadlocks

    There are two ways to gather data in a Deadlock situation.  If you are using Windows 2003 or later (IIS 6.0 or later), then follow the steps in the KB 828222 If you are using an older version of IIS, then follow the steps below: Before the issue occurs A. Download DebugDiag: ===================...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot – part 3 – Crash

    Defining an IIS Crash A Crash in IIS occurs when an IIS process (INETINFO.EXE, DLLHOST.EXE, W3WP.EXE) terminates unexpectedly. A Crash typically happens when there is an Unhandled Exception caused by an Access Violation, Stack Overflow, etc. In these situations, the operating system catches the exception...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot – part 2 – High Memory

    Identifying a Memory leak A Memory Leak in an IIS process (INETINFO.EXE, DLLHOST.EXE, W3WP.EXE) occurs when Memory Usage in Task Manager continues to consume more than 50% of the physical RAM until running out of system memory or until the process stops functioning. On heavily-used sites, a continuous...
  • Blog Post: ASP.NET Tips: What to gather to troubleshoot – part 1 – High CPU or Hang

    On machines running IIS5 and IIS5.1, these are the Inetinfo.exe, DLLHost.exe and/or ASPNET_WP.exe processes. On machines running IIS 6 or 7, this is the w3wp.exe process. The following steps will allow us to get log files of the processes hosting the IIS or ASP.NET applications, as well as obtain the...
  • Blog Post: ASP.NET Tips: Printing an IP Address

    So while looking through a dump, you will sometimes come across an IP Address.  For example, the System.Net.IPAddress: If you look at this output, you can see that we have the address in the m_Address field, but what is 1895899146?  This is where the function !printipaddress comes into play...
  • Blog Post: ASP.NET Tips: Looking at the finalization queue

    So in a previous post, we talked about Understanding when to use a Finalizer in your .NET class so now lets take a look at what the Finalize queue looks like and how to tell if things are bad. The command we use is !finalizequeue in sos: 0:010> !finalizequeue SyncBlock to be cleaned up: 86...
  • Blog Post: ASP.NET Tips: How to use DebugDiag to track down where a performance problem is coming from

    We recently had a case where the customer was having performance problems. They were seeing requests take a few minutes to return and didn’t know what was happening. So they took some dumps while the problem was happening. So we ran this dump through DebugDiag using the Crash/Hang script and looked at...
  • Blog Post: ASP.NET Tips: How to identify a COM call that is blocking GC, causing a memory leak

    Problem Description So this is a customer situation we found were the customer was getting an System.OutOfMemoryException.  We were able to reproduce this with a console application that just ran: For Iterator = 0 To 99999999999 Regex.IsMatch(CONNECTION_STRING, "/S" ) 'Create a SQLConnection...
  • Blog Post: ASP.NET Tips: Debugger command you may not know about – clientconns

    Here is yet another command you may not be aware of.  But it can be really helpful when you are troubleshooting many types of issues with IIS/ASP.NET. !clientconns is part of a debugger extension that ships with DebugDiag .  In the directory where you installed DebugDiag there will be a subfolder...
  • Blog Post: ASP.NET Tips: Debugger command you may not know about - procinfo

    Here is another debugger command that you may not know about that is in the sos.dll file included with the debugger package for .NET 1.0 and .NET 1.1. !procinfo will print out the environment variables, CPU times and memory usage statistics.  This can be very useful to checking to see where things...
  • Blog Post: ASP.NET Tips: Getting SOS to work when commands fail

    So the last quiz asked about a common error message you may see when debugging a dump from .NET on a machine other then where the dump was captured.  Now I want to go into more detail on this. For a look at the quiz, check out POP QUIZ- SOS not loading properly . History of SOS loading So first...
  • Blog Post: ASP.NET Tips: How to capture a dump

    There are multiple ways to capture a dump.  There are some examples discussed in my previous post, HOWTO- Capture a dump on a specific managed exception .  You can just use DebugDiag to capture a dump.  The easiest way in DebugDiag is to just click on the Processes tab, find the process...
  • Blog Post: ASP.NET Tips: Debugger command you may not know about - gcref

    During the course of debugging, often times you will find an object that you would like to know where it came from (who allocated the object).  The first command you will want to run is !gcroot .  But this command will only find the object if it is rooted on a thread or a global currently. ...
Page 1 of 2 (31 items) 12