If you're using ASP .NET, then you need to modify the maxRequestLength web.config property.
<httpRuntime executionTimeout="54000" maxRequestLength="512000" />
where execution timeout is in seconds, and maxRequestLength is in KB. executionTimeout, is basically the amount of time a thread will continue to run, and accept data by IIS/.NET. maxRequestLength, is the total amount of data that can be sent through HTTP Post to the server. The default is 4MB (4096)...and is generally set low so that your server will not be overwhelmed by possible DoS attacks.