We recently setup an apache reverse proxy with IIS sitting behind it. All of our apps work fine except for one.
In one app we will prepare and stream a PDF file to the user with the follow example code:
Response.Clear();
Response.ContentType = "binary/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + downloadName + "; size=" + downloadBytes.Length);
Response.OutputStream.Write(downloadBytes, 0, downloadBytes.Length);
Response.End();
The app will seem to hang and never stream the PDF. The app works fine with no proxy. And also if I take a pdf of the same size and store it on the server's file systems and then download from that directory it works fine. It seems to only have a problem when we try to stream using Response.
I suspected the connection wasn't being kept alive while the PDF generated (it takes about 5 to 7 seconds) but I have adjust the timeout and had no luck.
Here is my apache proxy config.
<VirtualHost *:443>
<Proxy *>
Order deny,allow Allow from all
SSLEngine on
SSLCertificateFile C:/certs/example.crt
SSLCertificateKeyFile c:/certs/example.key
ServerName www.example.com
ProxyVia On
ProxyPass / http://127.0.0.1:5000/ timeout=360
ProxyPassReverse / http://127.0.0.1:5000/
ProxyPreserveHost On
LogLevel debug