We are developing an application that uploads large files over Internet. File size before zipping by DotNetZip is around 18GB, and around 4GB after zip. File is transferred from client machine to destination server machine by secure ftp without any problem.
Then client calls .Net web services hosted by destination server machine to copy file from ftp root to storage directory, calculating file hash, and calling DotNetZip to unzip the file.
Web services work well when client machine and destination server machine which hosts web services both are in Intranet.
However, when using the same client machine, but another production destination server machine which hosts web services on Internet, web services has "Thread was being aborted exception" when copying, hashing, and unzip the 4GB file.
Both server machines are Windows 2003 server with SP2, have same components installed, have the same IIS ver6.0, and configured the same to use ASP .Net 2.0. We copied web.config, machine.config, MetaBase.xml from Intranet server machine to Internet server machine.
We changed: 1. Client side code: Web service proxy timeout in code 7200000 2. Server machine web.config file: (1). (2). 3. Server machine machine.config file: (1). 4. Server machine MetaBase.xml: (1). AspMaxRequestEntityAllowed="1073741824" 5. At IIS ver6, web site -> service tab ->Isolation Mode, "Run WWW service in IIS 5.0 isolation mode" is checked.
Our current understanding of the problem on server machine on Internet is that .Net recycl worker process at default timeout value causing "Thread was being aborted" exception even if thread continue to finish copying file.
If our understanding is correct, then why the same timeout configuration works at the server machine on Intranet? How do we make timeout configuration works on our production server machine on Internet?
I got lost. You have 2 servers. One has a web service which unzips a very large file and copies it to a second server.
Somewhere along the way it times out. Is that about right?
If that's true then I'd look at network utilization while the file copy is going. My guess is that the file is taking a huge amount of time to transfer between the machines.
You mention that one server is inside the firewall and the other is outside of it. How fast is the link between those two servers? If it's only 10Mb then you are seriously hosed.