This documentation is archived and is not being maintained.

HttpServerUtility.TransferRequest Method (String, Boolean, String, NameValueCollection)

Performs an asynchronous execution of the specified URL using the specified HTTP method and headers.

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)

public void TransferRequest(
	string path,
	bool preserveForm,
	string method,
	NameValueCollection headers


Type: System.String
The URL path of the new page on the server to execute.
Type: System.Boolean
true to preserve the QueryString and Form collections; false to clear the QueryString and Form collections.
Type: System.String
The HTTP method to use in the execution of the new request.
Type: System.Collections.Specialized.NameValueCollection
A NameValueCollection of request headers for the new request.


The request requires IIS 7.0 running in integrated mode.


The server is not available to handle the request.


The path parameter is null.

This method is used when running with the integrated pipeline mode in IIS 7.0 to allow request processing to be transferred from one resource type to another while executing the target request with the correct request context. For example, you can use the TransferRequest method to transfer a request for an ASPX page to a request for an XML page.

The TransferRequest method performs an asynchronous child execution of the specified URL with the following conditions:

  • If the path parameter specifies a query string, it will be used as the new query string. If no query string is included, the query string of the request will be re-used.

  • If the method parameter is specified, it will be used. If it is null, the HTTP method of the original request will be used.

  • If the preserveForm parameter is true, the current entity body of the request will be available to the target request. This allows form posts and uploads to be transferred.

  • If the user identity is currently set on the original request, the identity will be transferred to the new request. This allows authenticated requests to re-use the result of the authentication for the new request. If you do not want the user to be transferred, set the user to null on the original request before transferring.

  • If the headers parameter is specified, the new request will execute with the specified headers. This can be used to modify the request headers and cookies for the new request, or add a special header that specifies where the original request was received.

.NET Framework

Supported in: 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.