FileUpEE's ISAPI filter is used under ASP.NET to overcome ASP.NET's inefficient memory utilization and to allow accurate progress indication. With the filter, upload size is unlimited. Note that most browsers support uploads of up to 2 GB; larger uploads must be generated by a client-side control that can handle very large transfers. The ISAPI filter intercepts an upload request, reads all the data, and writes it to a temp file chunk by chunk, before sending it to ASP.NET.
For performance reasons, the ISAPI filter will not intercept all ASP.NET requests; only those for a file with the extension .uplx will be handled by the filter. Files with the extension .aspx will not be processed by the filter, and will be sent directly to ASP.NET. This prevents burdening the server with unnecessary use of the ISAPI filter. So, to use the filter, name your ASP.NET scripts FileName.uplx.
FileUpEE's automatic installation package will install the ISAPI filter in IIS, and the script mapping for the uplx extension. You can re-install the filter manually (if, for example, you move FileUpEE to a different machine), as explained in Installing the ISAPI Filter.
The ISAPI filter caches request data before it is processed by ASP.NET. The location of the cache files can be configured in the Windows registry. For details, see The ISAPI Filter Temp Directory.
FileUpEE includes several registry keys that allow you to optimize the performance of large uploads. For more information see, FileUpEE Registry Keys.
IIS's Connection Timeout property sets a time in seconds at which the server will disconnect an inactive connection. The default value is 900 seconds. To allow very large uploads to complete it may be necessary to increase this value. To reset Connection Timeout:
The IIS parameter MaxClientRequestBuffer sets a maximum size for the first chunk of a request. The first chunk will usually contain only a request's line and header fields, which includes all data in a request that is not part of the request's entity body. The default value of MaxClientRequestBuffer is 128 KB.
FileUp's ISAPI filter creates a new request and sends the entire request to ASP or ASP.NET as one chunk. When an upload contains many files, the ISAPI filter request may exceed the default value of MaxClientRequestBuffer and IIS might reject the request. To prevent this, add a MaxClientRequestBuffer key to the registry and set it to an appropriate value. Many factors can affect the size of the ISAPI filter request, but it will usually be around 128 KB per 600 uploaded files. To add MaxClientRequestBuffer to the registry and set it to a new value:
In the .NET configuration file for your Web application - web.config or machine.config - there are several attributes that can affect the performance of large uploads. To set these attributes at the machine level, modify machine.config (located in C:\WINNT\Microsoft.NET\Framework\v1.0.3705\CONFIG). To set the attributes at the application level, modify your application's web.config file.
You will find the following values in the
The following attributes are in the
Specifies the time, in the format HH:MM:SS, that must elapse after the last restart to cure a deadlock before the process is restarted to cure a deadlock again. This prevents thrashing on processes that require a relatively long startup time. The default is 9 minutes. To allow very large uploads, you may have to increase this value. This property must be set in machine.config, not at the application level in web.config. It will affect any response deadlock in ASP.NET and should be used with caution.
Copyright © 2003, SoftArtisans, Inc.