![]() ![]() We can see that the exception is a System.ArgumentOutOfRangeException. This is a really hard scenario to debug if we don’t have IntelliTrace since it’s an intermittent issue (the search worked for “batteries” but not for “jumper leads”). We can see there are some exceptions being thrown, even though the site didn’t report an error. Select the search request for “jumper leads” and click Request Details. Minimize Exception Data and expand Web Requests. In the left tree view, locate Debugging | General and uncheck the Enable Just My Code option in the right panel. From the main menu select Tools | Options. Since this IntelliTrace session isn’t associated with an active solution, you’ll need to temporarily disable the Just My Code feature to get the full experience. This file contains all of the IntelliTrace recordings from our session. Double-click the iTrace file to open it in Visual Studio 2019. Open Windows Explorer and navigate to C:\LogFileLocation. Stop-IntelliTraceCollection -ApplicationPool PartsUnlimited Return to PowerShell and enter the following command to stop the collection. Note that there are no results, which seems to be a bug. Search again for the plural “jumper leads”. Search again for the singular “jumper lead”. Start off by searching for the singular “battery”. By the way, attaching the IntelliTrace collector to the app pool recycles it, which is why the first load takes a bit longer than usual. Often, you can just let normal usage drive the IntelliTrace collection, but we’re going to have to simulate it here. Now we’re going to simulate some activity on the website ourselves. ![]() Note that it’s hosted locally in IIS on this VM, even though the URL is “ Use the Parts Unlimited shortcut to navigate to the site we’re debugging. Leave PowerShell open and launch Internet Explorer from the taskbar. For a lighter log, we could have used the default.xml collection plan. We specified the trace.xml collection plan which will give us a verbose log and have a slightly heavier impact on performance (hence we only want to run this for short periods). This will start IntelliTrace, which gathers diagnostic logs on the PartsUnlimited. \collection_.xml -OutputPath C:\LogFileLocationĬonfirm the action by entering “Y”. Start-IntelliTraceCollection -ApplicationPool PartsUnlimited -CollectionPlan. All user passwords are P2ssw0rd.Įnter the following command to change to the IntelliTrace directory. Task 1: Using IntelliTrace to collect data from production With that hunch in place, we’ll start the investigation there. We know that the last deployment extended the functionality of the search capabilities of this site. In this scenario the business owner has asked us to determine why we are seeing a drop in the sales of particular items from the past few days. Click the button below to launch the virtual machine on the Microsoft Hands-on-Labs portal.Īlternatively, you can download the virtual machine from here. In order to complete this lab you will need the Azure DevOps Server 2019 virtual machine provided by Microsoft. ASP.NET, ADO.NET, etc), which enables you to view the historical state of the application at those points in time. IntelliTrace automatically collects various events in your application (e.g. This makes it much easier to pinpoint the causes of issues without having to restart the application in an attempt to reproduce the problem. IntelliTrace enables you to seek to a large number of execution points-that occurred in the past-and drill into any of them by comparing variables, call stacks, etc. This lets you see what happened in your application without restarting it, especially if you step past where the bug is. IntelliTrace expands this traditional debugging experience by recording specific events and data at these points in time. ![]() Developers then rely on breakpoints to try to capture some of the errors that might appear because of unknown events, but sometimes even a breakpoint won’t be able to expose the issue. This forces the developer to either guess what happened based on current state or to attempt to recreate these events by re-running the app. These are limited in that they only account for your application’s current state with limited data about past events. Many developers still rely on traditional or live debugging techniques. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |