Saving large files using HTTP PUT

G

Guest

Hi,

We are receiving an error 'The operation has timed out' when our ASP.NET
application on Web Server stores large files 10MB+ on the App Server using
HTTP PUT. This is a Server to Server communication. This works fine with 4-5
MB files though. Also there is a 15 mb shared bandwidth limitation.
how can we throttle/control the transfer rate to see that we are within the
bandwidth limits ?

Any help is highly appreciated

Thanks
Ramesh
 
K

Klaus H. Probst

The default limit is 4MB. You can override this in web.config or
machine.config by changing the maxRequestSize attribute in the httpRuntime
section.

I don't know that you can control the bandwidth utilization with the default
WS plumbing provided by the framework - maybe there's a way to do it through
IIS.
 
K

Klaus H. Probst

Klaus H. Probst said:
The default limit is 4MB. You can override this in web.config or
machine.config by changing the maxRequestSize attribute in the httpRuntime
section.

Sorry, that's maxRequestLength:

<httpRuntime maxRequestLength="xxxxx" ... />
 
G

Guest

We already changed the httpruntime section in the web.config file to accept
files upto 20mb.
 
K

Klaus H. Probst

There is a practical though "undocumented" limit of 3.9MB or so I've always
observed when moving binary data through web services. I've never been able
to get past that, though I've heard some people claim they have. Perhaps
it's a configuration setting or the version of IIS you happen to be running
(IIS is the thing that actually handles the requests, after all). This is
true as far as I'm concerned regardless of the way you're moving the data -
whether it's a simple byte array on a web method, WS-Attachments/DIME or
some other thing.

The solution (for me at least) has been to maintain state on the server or
piggyback state on the web request and chunk the data manually to manageable
sizes (500K or so). This also has the benefit of saving you from timeouts
and whatnot.
 
B

bruce barker

be sure to set the page timeouts on the calling and recieving pages. you can
use timers to throttle the bandwidth. to do this correctly, you will need to
create a static class that monitors bandwidth to the server (to handle two
pages posting at the same time). post in chucks, then call the timer with
the chuck size and posting time. delay if required. if there is a dedicated
nic card for the 15mb network, you could monitor its i/o stats.

-- bruce (sqlwork.com)


| Hi,
|
| We are receiving an error 'The operation has timed out' when our ASP.NET
| application on Web Server stores large files 10MB+ on the App Server using
| HTTP PUT. This is a Server to Server communication. This works fine with
4-5
| MB files though. Also there is a 15 mb shared bandwidth limitation.
| how can we throttle/control the transfer rate to see that we are within
the
| bandwidth limits ?
|
| Any help is highly appreciated
|
| Thanks
| Ramesh
|
 
G

Guest

Thanks for your quick responses.

We are using a file upload control on an asp.net page to upload the the file.
We are receving the files from clients desktops. MaxRequestLength and
timeout are configured appropriately. The asp.net app uses WebClient to post
the data (using HTTP PUT/WEBDAV) to another server. And this is timing out.
THe whole thing works in DEV and SIT envs. It is failing when bandwidth
limitations are applied. I am wondering if there is a way to slice up the
file and upload in pieces. How that works with PUT/WEBDAV ?

Thanks
Ramesh
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,266
Messages
2,571,091
Members
48,773
Latest member
Kaybee

Latest Threads

Top