Both the ISAPI filter and the HttpModule provide similar functionality - a way to intercept the HTTP Request and cache it to disk before ASP.NET can buffer it into memory. The difference between them is that of the technologies on which they are based and the location of their placement in the HTTP pipeline.
The FileUp ISAPI filter is, as the name suggests, an ISAPI level filter. It is placed at the machine level node in the IIS Management Console and functions at the level of the entire webserver.
Appropriate Usage Scenarios:
- The ISAPI filter can be used in either ASP or ASP.NET, in IIS 5.
- The ISAPI filter is the only Interceptor Technology available in version 4 of FileUp.
- The ISAPI filter can be a work-around for the the ASP error, "Function returned |". http://support.softartisans.com/kbview.aspx?ID=851
Reasons to consider using the HttpModule instead of the ISAPI filter:
- ISAPI filter conflicts: Because ISAPI filters are capable of changing the shape of a request, they can easily cause conflicts with other filters and often must be installed in a certain order.
- IIS 6 compatibility: The native processing model of IIS 6 no longer supports "Read Raw Data" ISAPI filters. The FileUp ISAPI filter is a filter of this type. In order to support this type of filter, an IIS 6 machine would need to be run in "IIS 5 Isolation Mode", which may cause conflicts with other applications that are designed specifically for the IIS 6 native processing mode.
- If you are already running the HttpModule: The ISAPI filter is installed at the machine level and cannot be installed on a machine that is already running the HttpModule, which can be installed in the globally or at the application level.
The FileUp HttpModule was introduced in version 5 of FileUp as a means of addressing some of the incompatibilities associated with the FileUp ISAPI filter. It is placed in either the Global Assembly Cache of your webserver (global installation) or the bin directory of your Asp.Net application (application-level installation).
Appropriate Usage Scenarios:
- FileUp's HttpModule is an assembly specific to the .NET environment.
- FileUp's HttpModule is fully compatible with IIS 6.
- FileUp's HttpModule can be installed in the GAC or just at the application level.
|