у меня есть результат действия ExcelResult, который возвращает документы Microsoft Excel, основываясь на подсказке Стивена Вальтера . В основном он просто записывает поток в Response. При отладке VS 2010 (ASP.NET Dev Server) он работает нормально, но когда я запускаю его в поле IIS 6, я получаю следующую ошибку:
Представление GenerateExcel или его мастер не найдены. локации были обысканы: ~ / Просмотры / Главная / GenerateExcel.aspx ~ / Просмотры / Главная / GenerateExcel.ascx ~ / Просмотры / Shared / GenerateExcel.aspx ~ / Views / Shared / GenerateExcel.ascx
Нет связанного представления и, следовательно, нет файла, но его не должно быть. Что я делаю не так?
UPDATE
Просто возвращая void вместо ActionResult, у меня больше нет этой проблемы. Вместо того, чтобы возвращать ExcelResult, я явно вызываю его метод ExecuteResult, который записывает в выходной поток.
До
public ActionResult GenerateExcel()
{
return this.Excel(parameters);
}
После
public void GenerateExcel()
{
ExcelResult excelResult = this.Excel(parameters);
excelResult.ExecuteResult(null);
}
После этого у меня возникли проблемы с безопасностью при проверке подлинности NTLM, но они перестали прочь »(то есть я ожидаю, что они вернутся). Но пока все работает нормально.