When publishing content to a HTTP Deployer in AWS China we always get a transport failed error.
The logs show:
2015-10-04 16:51:02,481 ERROR HTTPSTransportConnector - Unable to execute HTTP POST
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.7.0_45]
at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.7.0_45]
at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.7.0_45]
at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:153) ~[httpcore.jar:4.1.4]
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:114) ~[httpcore.jar:4.1.4]
at org.apache.http.entity.mime.content.FileBody.writeTo(FileBody.java:105) ~[httpmime.jar:4.1.3]
at org.apache.http.entity.mime.HttpMultipart.doWriteTo(HttpMultipart.java:206) ~[httpmime.jar:4.1.3]
at org.apache.http.entity.mime.HttpMultipart.writeTo(HttpMultipart.java:224) ~[httpmime.jar:4.1.3]
at org.apache.http.entity.mime.MultipartEntity.writeTo(MultipartEntity.java:183) ~[httpmime.jar:4.1.3]
at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:96) ~[httpcore.jar:4.1.4]
at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108) ~[httpclient.jar:4.1.3]
at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:120) ~[httpcore.jar:4.1.4]
at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:264) ~[httpcore.jar:4.1.4]
at org.apache.http.impl.conn.AbstractClientConnAdapter.sendRequestEntity(AbstractClientConnAdapter.java:224) ~[httpclient.jar:4.1.3]
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:255) ~[httpcore.jar:4.1.4]
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123) ~[httpcore.jar:4.1.4]
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:647) ~[httpclient.jar:4.1.3]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464) ~[httpclient.jar:4.1.3]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) ~[httpclient.jar:4.1.3]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) ~[httpclient.jar:4.1.3]
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732) ~[httpclient.jar:4.1.3]
at com.tridion.transport.connection.connectors.HTTPSTransportConnector.send(HTTPSTransportConnector.java:384) ~[cd_transport.jar:na]
at com.tridion.transport.connection.connectors.TransportPoolConnector.send(TransportPoolConnector.java:92) [cd_transport.jar:na]
at com.tridion.transport.workers.TransportSender.call(TransportSender.java:78) [cd_transport.jar:na]
at com.tridion.transport.workers.TransportSender.call(TransportSender.java:27) [cd_transport.jar:na]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_45]
at java.lang.Thread.run(Unknown Source) [na:1.7.0_45]
It appears to be connected to the size of the package, but not with regards to to HTTP Deployer itself, as this has generous httpRuntime and requestLimits in web.config. If I publish a small category this succeeds, but just the homepage produces a 25MB package and this always fails.
I've already increased the SendTimeout in cd_transport_conf.xml.
What is actually resetting the connection - IIS, Windows?
I see from other posts, other people have moved to a FTP deployer - is this the accepted solution?