The web master at my corporation added SSL to the web site and now none of my users can download Microsoft word and xcel files the sites generates. According to Microsoft the following must be down.

Web sites that want to allow this type of operation should remove the no-cache header or headers.

Typical of MS they don't tell you what to do, how to do it, or what the best practice is. The web master says its a web config setting. But all i can finds is

    <httpRuntime sendCacheControlHeader="false"/>

and I don't know if this is the best way to achieve the result.

I would greatly appreciate some advice on this subject.


You say that this affects Excel files that are generated by your application. What about straight-up downloads? Try sticking an Excel file into your webroot manually, then downloading it. Does that come down OK?

The first thing I check when I have "file type x won't download" issues is MIME types. Could something have changed when the SSL certificate was being installed?

If MIME types turn out to not be the issue, at least you've crossed something off the list of things that could possibly be wrong. Does this issue affect every browser, or just IE?

| improve this answer | |

Assuming this is a custom header, this Microsoft article seems to explain how this is done.

To remove an HTTP response header

You can perform this procedure by using the user interface (UI), by running Appcmd.exe commands in a command-line window, by editing the configuration files directly, or by writing WMI scripts.

User Interface To use the UI Open IIS Manager and navigate to the level you want to manage. For information about opening IIS Manager, see Open IIS Manager (IIS 7). For information about navigating to locations in the UI, see Navigation in IIS Manager (IIS 7).

In Features View, double-click HTTP Response Headers.

On the HTTP Response Headers page, select the header that you want to remove.

In the Actions pane, click Remove and then click Yes.

| improve this answer | |

Setting sendCacheControlHeader to false actually has the opposite result. Normally IIS sends a cache-control:private header but setting this to false will cause IIS to not send this header while in fact you need this header for IE to cache the file (at least temporarily). So you need to remove that again from your web.config.

You say that the Word and Excel files are generated by the site. You need to modify the ASP(X) page that lets the user download these files. It will most likely contain a statement to send a cache-control:no-cache header.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.