|
Rank: Newbie Groups: Member
Joined: 6/25/2012 Posts: 3
|
Hi all,
I developed a small application to allow our intranet users to upload and download very large files. When I try to download a very big file (let's say bigger than 1gb) with the downloader I get the following error:
[ArithmeticException: Overflow or underflow in the arithmetic operation.]
[HttpException (0x80004005): An error occurred while communicating with the remote host. The error code is 0x80070216.] System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase) +518 System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData) +401 EO.Web.Internal.a.EndInvoke(IAsyncResult A_0) +0 EO.Web.Internal.e8.a(IAsyncResult A_0) +71 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +136
am I doing something wrong or just the downloader can't handle this kind of file?
Thanks in advance for any help
Claudio
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,195
|
Hi,
That may not work. HTTP protocol uses an integer in the header to represent the content size, that has a theoraticaly limit of 2G. Adding other overhead it is very normal for file over 1G to fail to download over HTTP. That's why almost all sites that allows you to download large files has some sort of download manager.
Thanks!
|
|
Rank: Newbie Groups: Member
Joined: 6/25/2012 Posts: 3
|
Thanks for your answer, I will find another way to allow users to download large files then.
Another question: what about the ajaxuploader control? is there a timeout or something that makes it stop functioning on very long uploads (longer than 1,5 hours)? It seems that, despite web.config and server settings about timeout and session recycling, the control stops to work on uploads that take very long time (the dimension of the file is not a problem this time). This doesn't happen with the regular not asynchronous upload control, wich has always worked and has been tested with extremely large uploads that took over 4 hours to complete.
When the ajaxuploader reaches 100% no server side events are fired, the control remains locked and the temporary files appear to be truncated way before the control showed 100%
I know http is not the right way to manage huge uploads and downloads, I was just making an attempt to give users a nice interface, but it seems I have to choose another system!
Thanks
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,195
|
Hi,
We have not been able to reproduce this problem. There are several things you can check:
1. You may want to add some code to trace your Global's Application_Start event. That will tell you when your application is being recycled. If your application is recycled while the upload is still in progress, then that will certainly cause problem for you.
2. Use a network tracer to trace the connection between your server and your browser. Sometimes a browser may decide to terminate a connection if that connection is kept for too long;
The AJAXUploader itself does not have a time out value on how long the upload takes. It does have a "server response" timer. While the upload is ongoing, the AJAXUploader will keep sending request to the server asking for the current progress (that's why it can display a progress bar). If that requests times out, you will get an error message.
Thanks!
|
|
Rank: Newbie Groups: Member
Joined: 6/25/2012 Posts: 3
|
Hi,
I am pretty sure the application is not recycled or timed out during the upload process. I will check it with a tracer so I can provide more informations. I am using the app thru a reverse proxy, so I will check that too.
The application is on a test machine, if you want to see its behaviour from there I can privately send you a link to it. Otherwise I will give you more informations when I am done testing it.
Thanks Claudio
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,195
|
Hi,
I do not know what else to tell you then. The uploader goes through regular HTTP post to upload the file, so if that part works fine, then it will succeed; and if that part fails, then it will fail. In either case there isn't much can be done in the code --- it's very much between your browser and your server ---- if your server reset, then it will fail. If your browser give up, then it will fail, if your network has a hiccup, then it will fail.
As to the link, we actually usually don't investigate such issues unless you can isolate the problem and can demonstrate the problem is related to us. For example, if you network or server has a problem, then we won't be able to investigate that for you as not only that is beyond the scope of our support, but also beyond the scope of our expertise.
If however you can isolate and duplicate the problem on another server, you can send a test app to us along with detailed step by step instructions on how to reproduce it. We will be happy to look further if we have that.
Thanks!
|
|