Running IntelliTrace on Applications in Production
After we released IntelliTrace in Visual Studio 2010 Ultimate, customers commonly asked us about debugging applications with IntelliTrace outside Visual Studio or Microsoft Test Manager. This can be very useful in an environment where your application has a repeatable problem, but you can’t attach a debugger, and you have to dig into code to find out what went wrong. Collecting IntelliTrace data might be the easiest and best way to help you resolve the problem.
So in Visual Studio 11, we’re including the capability to deploy IntelliTrace as a standalone data collector, which you can download here. We’ll first support applications hosted on Internet Information Services (IIS) versions 7.0 and later. You can also use PowerShell with the collector for IIS-hosted applications.
Configuring IntelliTrace to Collect Data
IntelliTrace can gather significant amounts of data, so how much IntelliTrace affects your application’s performance depends on both the quantity of data IntelliTrace collects and the kind of code that’s analyzed at runtime. We’ll provide more details about how IntelliTrace affects performance in a later post.
When IntelliTrace starts, the collection plan that is passed to the collection engine determines the kind of data collected and how it’s collected. Often, your best approach is to have IntelliTrace collect full data for all method calls in the target assemblies, which includes:
- Details about parameters passed into method calls
- Data returned from method calls
This approach affects application performance the most, but you’ll get the most data to help you analyze and resolve the problem.
The standalone collector comes with two collection plans:
This version is more lightweight and collects only IntelliTrace events, no full method call details. It does a great job recording information about exceptions, database calls, and requests to the Web server, but it doesn’t have method call detail for deep analysis.
This version includes everything in the default plan plus full calls details.
With either plan, we recommend that you start IntelliTrace data collection, reproduce the problem, and then stop collection. You can take resulting log that IntelliTrace creates, open it in Visual Studio 11 Ultimate, and analyze it. You can also edit a collection plan manually.
To learn more about debugging applications with IntelliTrace, in production or any other environment, check out the IntelliTrace hands-on-lab that comes with the preconfigured virtual machine, Ian Huff’s blog, or Debugging with IntelliTrace in the MSDN Library.