FileUpEE Registry Keys


FileUpEE includes several registry keys that allow you to fine-tune upload performance. To change a registry key value:

  1. Open the Start menu and select Run...

  2. Enter regedit and click Ok.

  3. Open the folder HKEY_LOCAL_MACHINE\SOFTWARE\SoftArtisans\FileUpEE\Parameters.

  4. Double click the key you want to update. An Edit DWORD Value dialog will open.

  5. In the Value Data field, enter a new value for the key.



Actively Supported Registry Keys

These registry keys change settings for the FileUpEE COM object. Please note that the FileUpEE COM object is referenced by the .NET assemblies of FileUpEE, meaning that these registry keys must be considered in ASP.NET projects as well.

FileUpEE Registry Keys
AuditLogDatabase

When AuditLogDestination is set to 2, FileUpEE will save log records in a database. AuditLogDatabase sets the connection string for FileUpEE's audit log database.

Use the database FileUpEEWS.mdb for audit logging on the web server, and FileUpEEFS.mdb for audit logging on the file server. You will find these databases in doc-samples\Samples\UploadSamples\Intermediate\Resume\ASP. You can generate a new audit log database with FileUpEE.CreateDatabase. To see the audit log, open the table FileUpEE. The State column contains an SAUploadState value.

SAUploadState Values
saTransferComplete 0
saTransferConnecting 1
saTransferTransferring 2
saTransferSuspended 3
saTransferError 4
saTransferCancelled 5
saTransferIncomplete 6
saTransferNotStarted 7

The sample databases included with FileUpEE and the databases generated by FileUpEE.CreateDatabase are Access databases. To generate a set of tables for an Oracle or SQL Server database, run the script FileUpEE.sql. The script is included in the folder SoftArtisans\FileUpEE.

Note

When audit logging is on, FileUpEE will create an audit log record for each file transfer. On a busy system, this can make the destination very large. If you enable logging, remember to delete old items in the log destination.

AuditLogDestination

AuditLogDestination sets the type of audit logging that FileUpEE will use. By default, FileUpEE will not create an audit log. To enable audit logging, set AuditLogDestination to one of the following values:

1 The audit log will be a file set by AuditLogFile.
2 FileUpEE will save log records in a database set by AuditLogDatabase.
4 File transfers will be logged in the Windows EventLog. To view the log go to Start/Control Panel/Administrative Tools/Event Viewer.
8 File transfers will be logged in the system debugger. You can view the records with tools such as Sysinternals DebugView .

If AuditLogDestination is set to 1, set AuditLogFile. If AuditLogDestination is set to 2, set AuditLogDatabase. By default AuditLogDestination is set to 0 and audit logging is disabled.

AuditLogFile

AuditLogFile sets the path and file name of FileUpEE's audit log file. When audit logging is enabled, FileUpEE will create an audit log for each file transfer. FileUpEE will save the audit log to a file if AuditLogDestination is set to 1.

DebugLevel

DebugLevel can be used in conjunction with DebugLogFile to enable debugging. The debug level can be set according to the level of detail you wish the log files to contain.



Values Level of Detail
0 No debug output.
1 Outputs trace log that includes which methods are used.
2 More detailed debugging.
3 Verbose debugging. Includes dumps of headers and the SOAP envelope. It is not recommended to use this level of debugging in a production environment as it will slow the application.
It is also possible to override the registry and control logging in your code. DebugLevel and DebugLogFile have been added as properties to the FileUpEe object.

objFileUpEe.DebugLevel = [Log Level as Integer] oFUEE.DebugLogFile = [Debug
                Log Path as String] 

The ability to turn the logging on and off in code means that specific sections of the code can now be targeted for debugging. If debug logging isn't used in the registry but is turned on in code, the logging will be unable to start until the FileUpEe object has fully initialized. This means that any errors thrown during the initialization process will not be caught.
DebugLogFile

DebugLogFile sets the path and file name of FileUpEE's debug log file. Debug logging must be enabled using the DebugLevel registry key.

DynamicAdjustScriptTimeout (ASP only) If this key is set to 1, IIS's ScriptTimeout value will be increased until an upload or download is complete. Use DynamicAdjustScriptTimeout to ensure that large uploads and downloads will not be timed out. DynamicAdjustScriptTimeout is set to 1 by default. To disable DynamicAdjustScriptTimeout, set it to 0.

ErrorLogDatabase

ErrorLogDatabase sets the connection string for FileUpEE's error database. FileUpEE will log errors in a database if ErrorLogDestination is set to 2.

Use the database FileUpEEWS.mdb for error logging on the web server, and FileUpEEFS.mdb for error logging on the file server. You will find these databases in doc-samples\Samples\UploadSamples\Intermediate\Resume\ASP. You can generate a new audit log database with FileUpEE.CreateDatabase. To see the error log, open the Errors table.

The sample databases included with FileUpEE and the databases generated by FileUpEE.CreateDatabase are Access databases. To generate a set of tables for an Oracle or SQL Server database, run the script FileUpEE.sql. The script is included in the folder SoftArtisans\FileUpEE.

IgnoreUnknownCA 3-tier SSL uploads can fail if the webserver does not have an up-to-date root certificate for the Certifying Authority for the SSL certificate on the fileserver. Because webservers do not usually make HTTP requests to other servers, this situation may not be noticed until someone tries to use FileUpEe in a 3-tier file transfer application. If during development, you experience problems with 3-tier SSL uploads, this key can be enabled (set to "1") to have FileUpEe instruct WinHttp to ignore the problem and go ahead and send the request. This key should not be used in a production environment as the transfer will not be secure. It is meant as a work-around during development until a valid certificate can be obtained.
UseMemory (ASP Only)

If UseMemory is set to 1, FileUpEE will store uploaded data in memory until the data is saved. If UseMemory is set to 0, uploaded data will be cached in a temporary directory until it is saved. UseMemory is set to 0 by default.

The benefits of caching in memory may be:

  • Security
    No files are written to disk until the upload is saved.

  • Performance
    Caching files in memory can increase the speed of uploads. However, before setting UseMemory to True you should consider other factors affecting the upload, such as, available memory on the file server, how active the server is, and the size of the upload. If an upload is larger than 1-5 MB (depending on the system load), caching in memory will probably not improve performance.

Do not set UseMemory to 1 if you expect very large uploads (100 MB or more).

Note

This setting has no effect during ASP.NET uploads because the HttpModule caches the entire upload to disk.

Deprecated ISAPI Filter Registry Keys

These registry keys change settings for the ISAPI filter, which is deprecated in this edition of FileUpEE. Though these registry keys are created by the automatic installer, they are not used by default in FileUpEE.

Deprecated HTTPModule Registry Keys

These registry keys change settings on older versions of the FileUpEE HttpModule which have been deprecated for releases 5.1 and up. These registry keys are created by the automatic installer, but are not used by FileUpEE or the HttpModule. To change settings on the currently-supported HTTPModule, edit the web.config file for your web application.

Deprecated HTTPModule Registry Keys
ErrorLogDestination

ErrorLogDestination sets the type of error logging that FileUpEE will use. By default, FileUpEE will not create an error log. To enable error logging, set ErrorLogDestination to one of the following values:

SALogDestination Values
1 Errors will be logged in the file set by ErrorLogFile.
2 Errors will be logged in a database set by ErrorLogDatabase.
4 Errors will be logged in the Windows EventLog. To view the errors go to Start/Control Panel/Administrative Tools/Event Viewer.
8 Errors will be logged in the system debugger. You can view the errors with tools such as Sysinternals DebugView .

If ErrorLogDestination is set to 1, set ErrorLogFile. If ErrorLogDestination is set to 2, set ErrorLogDatabase.

ErrorLogFile

ErrorLogFile sets the path and file name of FileUpEE's error log file. FileUpEE will log errors in a file if ErrorLogDestination is set to 1.

FileUpEETempDir Note: If both IsapiTempDir and FileUpEETempDir are set FileUpEE will use the value of FileUpEETempDir. The IsapiTempDir registry key is deprecated in FileUpEE 5. Use FileUpEETempDir instead.

FileUpEE's interceptors - the ISAPI filter and the HttpModule - cache request data before it is processed by ASP or ASP.NET. By default, the cache location is the system's default directory for cached files, which is determined by the system environment variable TEMP. To set a different temp directory for either interceptor, change the value of FileUpEETempDir.

The temp directory must be on a local drive, not on a network shared drive, because the interceptors write to the server hard drive as the local SYSTEM account and this account does not have access to network drives.
FilterAspDotNetAtNKiloBytes This key specifies the smallest ASP.NET upload size - in kilobytes - for which FileUpEE will use the ISAPI filter (IIS 5) or the HttpModule (IIS 6). If the size of an ASP.NET upload equals or is greater than the value of FilterAspDotNetAtNKiloBytes, and UseIsapiFilterWithAspDotNet is set to 1, FileUpEE's ISAPI filter or HttpModule will be used to process the upload. The default value of FilterAspDotNetAtNKiloBytes is 0, meaning that the filter will intercept all uploads to files with the extension .uplx.

FilterAspDotNetAtNKiloBytes will have no effect if the registry key UseIsapiFilterWithAspDotNet is set to 0 (disabled).

Remember: In ASP.NET, the ISAPI filter and HttpModule only intercept requests for files with the extension .uplx, regardless of the values of FilterAspDotNetAtNKiloBytes and UseIsapiFilterWithAspDotNet. If, for example, UseIsapiFilterWithAspDotNet is set to 1 (enabled), and FilterAspDotNetAtNKiloBytes is set to 4000000, and the server-side upload processing page is WebServer.aspx, the filter will not intercept uploads that are equal to or greater than 4000000 KB (4 GB).
FilterAspDotNetFlagExtension For performance reasons, FileUpEE's ISAPI filter (IIS 5) and HttpModule (IIS 6) do not intercept all ASP.NET requests. By default, the filters intercept ASP.NET requests for files with the extension .uplx. Files with the extension aspx will not be processed by the filter, and will be sent directly to ASP.NET. This prevents burdening servers with unnecessary use of the filters.

FilterAspDotNetFlagExtension allows you to change the file extension used to signal the filters in ASP.NET (.uplx) to a different extension of up to seven characters. By using a file extension other than .uplx you can hide your web server implementation (Windows/IIS) from potential hackers.
MaxKBytes

MaxKBytes sets a file size limit for an upload. MaxKBytes is a per-file limit, not a limit for a whole multiple-file upload. For each file in an upload, FileUpEE will stop writing the file to disk at the value of MaxKBytes. Note that incomplete files will be saved.

When MaxKBytes is set to zero, there is no size limit for uploaded files. MaxKBytes is set to zero by default.

MaxKBytesToCancel

FileUpEE will abort a file upload when the size of the transfer reaches the value of MaxKBytesToCancel. No data will be written to the server's hard disk, the connection will be terminated, and the browser will display a "Page not found" message.

Setting MaxKBytesToCancel may reduce the threat of a Denial of Service (DoS) attack on the file server. When an upload size hits MaxKBytesToCancel, the connection to the server will be terminated, the ASP.NET page will finish executing, and the ASP.NET thread will be freed.

When MaxKBytesToCancel is set to zero, there is no size limit for uploaded files. MaxKBytesToCancel is set to zero by default.

ProgressIndicator Set ProgressIndicator to 1 to enable FileUpEE's progress indicator. ProgressIndicator is set to 0 by default.
ProgressIndicatorParam When a request is intercepted by the ISAPI filter or the HttpModule, it is the interceptor that updates the progress indicator. For performance reasons, you can disable the progress indicator functionality of the interceptors. There is a slight performance increase when the functionality is turned off. To turn off progress indicator updating by the interceptors, set ProgressIndicatorParam to 0. To turn this feature on, set ProgressIndicatorParam to 1.
Resumable

When Resumable is set to 1 on both the web server and the file server, FileUpEE will be able to resume an upload from web server to file server that was suspended because of a network connection failure. Resumable is set to 0 (disabled) by default.

TransferStage

TransferStage specifies the stage of an upload, which may be either web server or file server. On a web server, set TransferStage to 1. On a file server, set TransferStage to 2.

UseHttpModuleWithAspDotNet

FileUpEE's HttpModule (IIS 6) intercepts an upload request, reads all the data, and writes it to a temp file chunk by chunk, before sending it to ASP.NET. UseHttpModuleWithAspDotNet turns the HttpModule on or off for ASP.NET uploads. To turn the installed filter off, set UseHttpModuleWithAspDotNet to 0. To turn the filter on, set UseHttpModuleWithAspDotNet to 1.

Deprecated ISAPI Filter Registry Keys
FilterAspAtNKiloBytes This key specifies the smallest ASP upload size - in kilobytes - for which FileUpEE will use the ISAPI filter. If the size of an ASP upload equals or is greater than the value of FilterAspAtNKiloBytes and UseIsapiFilterWithAsp is set to 1, FileUpEE's ISAPI filter will be used to process the upload. The default value of FilterAspAtNKiloBytes is 4000000 (4-GB).

By default the filter is not enabled for ASP. FilterAspAtNKiloBytes will have no effect unless the registry key UseIsapiFilterWithAsp is set to 1.

Remember: In ASP, the ISAPI filter only intercepts requests for files with the extension .upl, regardless of the values of FilterAspAtNKiloBytes and UseIsapiFilterWithAsp. If, for example, UseIsapiFilterWithAsp is set to 1 (enabled), and FilterAspAtNKiloBytes is set to 4000000, and the server-side upload processing page is WebServer.asp, the ISAPI filter will not intercept uploads that are equal to or greater than 4000000 KB (4 GB).
FilterAspFlagExtension For performance reasons, FileUpEE's ISAPI filter in IIS 5 does not intercept all ASP requests. By default, the ISAPI filter intercepts ASP requests for files with the extension .upl. Files with the extension .asp will not be processed by the filter and will be sent directly to ASP. This prevents burdening servers with unnecessary use of the ISAPI filter.

FilterAspFlagExtension allows you to change the file extension used to signal the filters in ASP (.upl) to a different extension of up to seven characters. By using a file extension other than .upl you can hide your web server implementation (Windows/IIS) from potential hackers.
IsapiBufferSize FileUpEE's 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 or ASP.NET. IsapiBufferSize specifies the size of these data chunks. Note that in FileUpEE Version 4, changing the value of this key will have no effect.
IsapiTempDir Note: The IsapiTempDir registry key is deprecated in FileUpEE 5. Use FileUpEETempDir instead. If both keys are set, FileUpEE will use the value of FileUpEETempDir.

FileUpEE's interceptors - the ISAPI filter and the HttpModule - cache request data before it is processed by ASP or ASP.NET. By default, the cache location is the system's default directory for cached files, which is determined by the system environment variable TEMP. To set a different temp directory for the ISAPI Filter, you can change the value of IsapiTempDir.

The ISAPI temp directory must be on a local drive, not on a network shared drive, because the ISAPI filter writes to the server hard drive as the local SYSTEM account and this account does not have access to network drives.
LockedFileRetryTime If a file is uploaded to a virtual directory, and then requested via HTTP, IIS or another process may lock the requested file. For example, if a user uploads an image file, and immediately opens the uploaded image in the browser, IIS may lock the file for up to 30 seconds after it was requested via HTTP. So, if the same user tries to upload a replacement of the image file immediately after viewing it, the upload will fail.

IIS may continue locking the file for as long as there are outstanding requests to the file. A heavily requested file may stay locked for minutes or hours at a time. In addition to IIS, web server processes such as content indexing, backup utilities, or virus scanners, may lock files.

By default, FileUpEE will try overwriting the locked file once per second for up to 45 seconds. To change this value, edit LockedFileRetryTime.
UseIsapiFilterWithAsp FileUpEE's 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 or ASP.NET. UseIsapiFilterWithAsp turns the ISAPI filter on or off for ASP uploads. To turn the filter off, set UseIsapiFilterWithAsp to 0. To turn the filter on, set UseIsapiFilterWithAsp to 1. UseIsapiFilterWithAsp is set to 0 by default.
UseIsapiFilterWithAspDotNet FileUpEE's 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. UseIsapiFilterWithAspDotNet turns the ISAPI filter on IIS 5 for ASP.NET uploads. To turn the ISAPI filter off, set UseIsapiFilterWithAspDotNet to 0. To turn the filter on, set UseIsapiFilterWithAspDotNet to 1.

Copyright © 2010 SoftArtisans, Inc. All rights reserved.