У меня есть действие контроллера, которое возвращает документ PDF. В зависимости от переменной переключения сайта он выберет один из нескольких исходных файлов, переименует его и вернет в браузер. Это прекрасно работает в Chrome и Firefox, но в IE8 появляется диалоговое окно загрузки, а затем появляется следующее сообщение об ошибке ...
"Internet Explorer не может загрузить
FullTermsAndConditions от
www.mydomain.com.
Internet Explorer не смог открыть
этот интернет-сайт. Запрашиваемый сайт
либо недоступен, либо не может быть
найденный. Пожалуйста, попробуйте позже. "
Это мой код ...
public ActionResult FullTermsAndConditions()
{
var targetFileName = LookupTargetFileName();
var fullPath = System.IO.Path.Combine(DownloadsPath, LookupSourceFileName());
var result = File(fullPath, "application/pdf");
result.FileDownloadName = targetFileName;
return result;
}
Кто-нибудь может увидеть, что я сделал не так?
Дополнительная информация ...
Я добавил следующий код в мой контроллер для просмотра заголовков ...
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
WriteResponseHeadersToFile(@"C:\temp\ResponseHeaders.txt", filterContext.HttpContext.Response);
}
private static void WriteResponseHeadersToFile(string fileName, System.Web.HttpResponseBase response)
{
using (StreamWriter writer = new StreamWriter(fileName, true))
{
writer.Write("Reponse started @ ");
writer.WriteLine(DateTime.Now.ToShortTimeString());
var allHeaders = response.Headers;
for (int i = 0; i < allHeaders.Count; i++)
writer.WriteLine("{0} = {1}", allHeaders.Keys[i], allHeaders[i]);
writer.Close();
}
}
Это был результат ...
Отклик начался @ 09: 02
Сервер = Microsoft-IIS / 7.0
X-AspNetMvc-Version = 1.0
Content-Disposition = вложение; filename = "Полные условия.pdf"