Table of Contents
- Getting Started
- EO.Pdf
- EO.Web
- Overview
- Installation & Deployement
- EO.Web ToolTip
- EO.Web Rating
- EO.Web Slider & RangeSlider
- EO.Web ListBox
- EO.Web ComboBox
- EO.Web Captcha
- EO.Web ASPX To PDF
- EO.Web Slide
- EO.Web Flyout
- EO.Web EditableLabel
- EO.Web ImageZoom
- EO.Web Floater
- EO.Web Downloader
- EO.Web ColorPicker
- EO.Web HTML Editor
- EO.Web File Explorer
- EO.Web SpellChecker
- EO.Web Grid
- EO.Web MaskedEdit
- EO.Web Splitter
- EO.Web Menu
- EO.Web Slide Menu
- EO.Web TabStrip
- EO.Web TreeView
- EO.Web Calendar
- EO.Web Callback
- EO.Web MultiPage
- EO.Web Dialog
- EO.Web AJAXUploader
- EO.Web ProgressBar - Free!
- EO.Web ToolBar - Free!
- EO.WebBrowser
- EO.Wpf
- Common Topics
- Reference
Troubleshooting AJAXUploader |
Overview
EO.Web AJAXUploader relies on a server side module (EO.Web.Runtime) to function. Like any other ASP.NET module, it participates ASP.NET request pipeline and processes certain requests sent by AJAXUploader client script. Elements that have control over the request before it reaches the uploader's server side module can cause the uploader to stop working if it abandons the request (without passing it downstream) or prefetch the request data.
Disable ASP.NET tracing
ASP.NET tracing intercepts the request before other modules and tries to prefetch the whole form data into memory. In case of a file upload request, this means prefetching the whole file data into memory. This prevents the request from reaching AJAXUploader server module before the whole file is transferred, and the tracing code itself often fails due to memory constrains before it finishes, due to the fact that the file to be uploaded is often big.
Check IIS 6 request size limit
IIS 6 can be configured to reject a request if its content size exceeds the preset limit. In this case one would often observe that the uploader works for small files, but once the file size is over a certain limit, it stops working.
If this is the case, consider increasing MaxRequestEntityAllowed value. To do this, follow these steps:
-
At a command prompt, type the following command, and then press ENTER:
cd drive:\inetpub\adminscripts
In this command, drive is the drive where IIS is installed.
-
At a command prompt, type the following command, and then press ENTER:
cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed size
In this command, size is the file size limit in bytes. Note the limit can also be set on a virtual directory. If that is the case, you may also need to adjust the setting on virtual directories.
Check IIS 7 request filtering
IIS 7 can be configured to filter certain requests based on various conditions such as verbs, request size, file extensions, etc. Request size filters are often used to refuse requests that are over a certain size limit. However this can cause IIS 7 to refuse upload request when the file to be uploaded is over the preset limit. In this case one would often observe that the uploader works for small files, but once the file size is over a certain limit, it stops working.
If this is the case, consider increasing the request size limit using the following command:
appcmd set config "SiteName/AppName" -section:requestFiltering -requestLimits.maxAllowedContentLength:104857600 -commitpath:apphost
Note SiteName and AppName should be replaced with the real site name and application name. For example, the following command sets a maximum request size that is about 100M for EO.Web demo application:
appcmd set config "Default Web Site/EOWebDemo_Net20_CS" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost
More information about this command can be found in this Microsoft TechNet article.
This setting can also be set in your web.config. The following config file changes the maximum request size to about 100M:
<configuration> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="100000000"/> </requestFiltering> </security> </system.webServer> </configuration>
Check other HTTP modules
If your application also use other HTTP modules, try temporarily removing/disabling them and see if it resolves the issue. Similar to the case of ASP.NET tracing, a module can cause the AJAXUploader to stop working if it abandons the request or prefetch the request data before it reaches the AJAXUploader.
Try a regular file input element
Most configuration issues that causes AJAXUploader to stop working also causes a regular HTTP file input element to stop working. Using the following simple code to verify if this is the case:
<form id="Form1" runat="server" method="post" enctype="multipart/form-data"> <input type="file" size="50"> <input type="submit" value="Submit"> </form>