asp:FileUploader works for 2GB, but NeatUpload fails

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

asp:FileUploader works for 2GB, but NeatUpload fails

iyaps
Hello,

I'm trying to upload a file which is closer to 2GB in size using NeatUpload. I've been receiving the well-known Client disconnected after receiving 666894663 of 1442787808 bytes in 104 secs -- user probably cancelled upload exception. I've cross verified my server configuration (IIS 6, .NET 2.0, Server 2003 R2-64bit), there are no firewall or URLScan settings enabled on my server.

To understand the problem more, I've setup demo projects using asp:FileUploader and NeatUpload:InputFile controls. I'm able to upload the 2GB file using asp:FileUploader control, but not NeatUpload. What am I missing here? Do you have any pointer where this could be wrong?

My web.config has these settings
<httpModules>
        <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload" />
</httpModules>
<httpRuntime maxRequestLength="2097151" executionTimeout="600"/>

Thanks
Iyaps
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

Dean Brettle
Administrator
What version of NeatUpload are you using?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

Guest-1128
Brettle.Web.NeatUpload.dll - file version 1.3.3708.40379
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

iyaps
Thought of adding more info about my observation here.

Inside App_Data\NeatUpload_Temp folder, I do see multiple chunks of files (guid.config with varying sizes ) for a single file upload.
And guess the file handles (for guid.config) are not being released when this exception is thrown. Overtime, i see multiple of these temp files.

Is there anyway I could set it up to clean up the temp files or is it done automatically?


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

Dean Brettle
Administrator
It should clean up the temp files automatically when the upload finishes or errors.  Not sure why it isn't. 

Does the error occur everytime for such large files?  If you configure NeatUpload to use the InProcUploadStateStoreProvider as described in Reducing Server Load, does the problem go away?

If you configure NeatUpload-version/dotnet/app as a web app on the same server where you are experiencing this problem, can you reproduce it when visiting app/Brettle.Web.NeatUpload/Demo.aspx? 
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

iyaps
I haven't included the NeatUpload configuration section on the web.config yet. Will try to include the InProcUploadStateStoreProvider related changes and let you know.

But I did try the Demo.aspx by downloading the whole package and hosting on my environment. Demo.aspx exhibits the same behavior and I do get the same " Error: Client disconnected after receiving 666894663 of 1442787808 bytes in 104 secs -- user probably cancelled upload." message.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

iyaps
Just tried the InProcUploadStateStoreProvider, i don't see any difference in the behavior. Problem still exists.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

Dean Brettle
Administrator
Thanks for doing these tests and providing such clear answers.  I really appreciate it.

I have to say I'm a bit stumped at the moment.  AFAIK, all other reports of "client disconnected" errors have been caused by something outside of NeatUpload, but that doesn't seem to be the case here.  Just to be sure, please change the following bolded value in NeatUpload-version/dotnet/app/Brettle.Web.NeatUpload/Web.config:

    <location path="Demo.aspx">
        <neatUpload useHttpModule="true" xmlns="http://www.brettle.com/neatupload/config/2008" />
    </location>

to:

    <location path="Demo.aspx">
        <neatUpload useHttpModule="false" xmlns="http://www.brettle.com/neatupload/config/2008" />
    </location>

When you do that, the ProgressBar will go away -- that's expected.  The question is, does it allow you to successfully upload the large file?

I'll double check that I can still upload 2G files locally, but it is definitely something I've checked in the recent past...

Oh, one more question.  Does the error message always display the exact same number of bytes received and time taken to receive them?  Does setting maxUploadRate="2000" in the <neatUpload> section change the numbers substantially?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

iyaps
Trying useHttpModule="false" leads to the same issue but with the browser redirecting to "The connection to the server was reset while the page was loading." error page. As you mentioned there is no progress bar displayed.

About the bytes received and the time taken, it varies for every attempt even though I use the same file for testing.
The latest one I got when I tried maxUploadRate="2000" is
" Error: Client disconnected after receiving 497535697 of 1442787808 bytes in 74 secs -- user probably cancelled upload. "
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

Dean Brettle
Administrator
I just successfully uploaded a 1.8Gbyte file from IE8 to an Demo.aspx running in an IIS7 (32-bit Vista) webapp using the "Classic AppPool" (which is as close to IIS6 as I can get).  The fact that you still see a problem when useHttpModule="false" eliminates a large chunk of NeatUpload as the potential cause.  Things to check:

1. Are you running out of disk space or otherwise unable to create a 2GB file in app/App_Data/NeatUpload_Temp?
2. Is IIS6 or ASP.NET restarting during the upload?
3. Any clues in the IIS log files?
4. Can you reproduce the problem on a different server?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: asp:FileUploader works for 2GB, but NeatUpload fails

iyaps
I'm unable to reproduce this issue on our staging servers (IIS 6 - 32 Bit Server 2003, IIS 7.5 - 64 Bit Server 2008). It just happens on our production (IIS 6,  - 64bit Server 2003 R2). I've been trying to find clues on this particular server to crack this issue, but no luck so far. Since most of our users will not upload anything more than few hundred megs, no one is complaining yet.

Thanks for your suggestions, will update once I figure out.
Loading...