У меня есть результат действия ExcelResult, который возвращает документы Microsoft Excel, основываясь на совете Стивена Вальтера. В основном он просто пишет поток для ответа. При отладке VS 2010 (ASP.NET Dev Server) он работает нормально, но когда я запускаю его в ящике IIS 6, я получаю следующую ошибку:
Вид "GenerateExcel" или его мастер не найден. Были обысканы следующие местоположения: ~/Views/Home/GenerateExcel.aspx ~/Views/Home/GenerateExcel.ascx ~/Views/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, но они "ушли" (что означает, что я ожидаю, что они вернутся). Пока что все работает нормально.