Web Debug

Fix broken web applications, from servers to clients.

How to replay HTTP request and response

You would normally want to replay a page you are troubleshooting first and see if you are able to reproduce the reported behavior. The nice thing about this tool is that you can manipulate many things including browser agents, script, css images, introduce latency and more.

How to use Fiddler Autoresponder to replay a fiddler trace

WinInet connection limit

WinInet limits connections per server

WinInet limits connections to a single HTTP 1.0 server to four simultaneous connections. Connections to a single HTTP 1.1 server are limited to two simultaneous connections. The HTTP 1.1 specification (RFC2616) mandates the two-connection limit. The four-connection limit for HTTP 1.0 is a self-imposed restriction that coincides with the standard that is used by a number of popular Web browsers.

The only evidence of this limitation to your application is that calls such as HttpSendRequest and InternetOpenURL appear to take longer to complete because they wait for previous connections to be freed up before their requests are sent.

Troubleshoot IIS request timed out issue

How to troubleshoot HttpException Request timed out (ASP.NET 2.0 32-bit)
How to troubleshoot HttpException Request timed out (ASP.NET 4.0 64-bit)
By XinJin

The user may receive the following response intermittently:
Request timed out.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Request timed out.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

[HttpException (0x80004005): Request timed out.]
The following warning may occur in application event logs:
Log Name: Application
Source: ASP.NET 4.0.30319.0
Event ID: 1309
Task Category: Web Event
Level: Warning
Keywords: Classic
User: N/A
Event code: 3001
Event message: The request has been aborted.

Application information:

Process information:

Process name: w3wp.exe
Account name: IIS APPPOOL\ASP.NET v4.0
Exception information:
Exception type: HttpException
Exception message: Request timed out.

This kind of issue is typically occurs when the ASP.NET request executes for a period of time longer than the maximum timeout period allowed for server-side code execution.

This maximum timeout period can be set by executionTimeout attribute of httpRuntime element in config file. (The default value is 110 seconds in .Net 4.0)

Troubleshoot kernel mode memory leak

How to use Memory Pool Monitor (Poolmon.exe) to troubleshoot kernel mode memory leaks

This article describes how to use the Memory Pool Monitor utility, Poolmon.exe, as a troubleshooting tool to monitor memory tags.

Poolmon displays data that the operating system collects about memory allocations from the system paged and nonpaged kernel pools and about the memory pools used for Terminal Services sessions. The data is grouped by pool allocation tag. This information can be used by Microsoft Technical Support to find kernel mode memory leaks.

A memory leak is caused by an application or by a process that allocates memory for use but that does not free the memory when the application or process finishes. Therefore, available memory is completely used over time. Frequently, this condition causes the system to stop functioning correctly.

In this case, the following events may be logged in the System log:
Event ID: 2020
Source: Srv
Description: The server was unable to allocate from the system paged pool because the pool was empty.

Event ID: 2019
Source: Srv
Description: The server was unable to allocate from the system nonpaged pool because the pool was empty.

In httperror log, there will be Connections_Refused errors which makes the websites stop to accept new connections. This usually indicates the kernel NonPagedPool memory has dropped below 20MB and http.sys has stopped receiving new connections.

How to find pool tags that are used by third-party drivers

This article describes how to find the source of a pool tag that is used by a third-party driver. This may be useful because when you troubleshoot an issue, you may encounter a pool tag that cannot be tied to a Microsoft component, and finding the source of these tags can be complicated and is often impossible without the use of a kernel-mode debugger.

Who's Using the Pool?

Troubleshoot IE WPAD issue

Insight WPAD proxy settings on IE
By Zhixing Lv

The Web Proxy Auto-Discovery Protocol (WPAD) is a method used by clients to locate a URL of a configuration file using DHCP and/or DNS discovery methods. Once detection and download of the configuration file is complete it can be executed to determine the proxy for a specified URL. WPAD is documented in an INTERNET-DRAFT which expired in December 1999, although it is still supported by all major browsers. In this article, I will give you some deep understanding regarding how IE detects WPAD, and how to resolve some of the WPAD problems for IE.

Fork me on GitHub