У меня есть приложение, которое работает на двух серверах, другое - QA, а другое - Production. Проблема заключается в том, что если вы хотите открыть приложение Excel, которое оно загружает в приложении QA или PRD, он открывает Excel, но ничего не происходит, просто пустое.Экспорт в excel не работает на сервере
Был момент, когда приложение может экспортировать информацию в файл Excel, не больше, так как вчера метод выглядит следующим образом:
[Autorizacion]
public ActionResult ExportToExcelReports()
{
IList<DTOReport> reports = null;
try
{
reports = BusinessLogic.Report.GetReports(SessionHelper.Site.IdSite);
var title = "Reports";
var report = new System.Data.DataTable(title);
report.Columns.Add("Blah1", typeof(string));
report.Columns.Add("Blah2", typeof(string));
report.Columns.Add("Blah3", typeof(string));
report.Columns.Add("Blah4", typeof(string));
report.Columns.Add("Blah5", typeof(string));
report.Columns.Add("Blah6", typeof(string));
report.Columns.Add("Blah7", typeof(string));
report.Columns.Add("Blah8", typeof(string));
report.Columns.Add("Blah9", typeof(string));
report.Columns.Add("Blah10", typeof(string));
foreach (var item in reports)
{
var brandText = "";
foreach (var brand in item.Brands)
{
brandText = brandText + (brandText != "" ? "," : "") + brand.Name;
}
report.Rows.Add(item.Name, item.Description, item.DateCreated, item.Type, item.Category, item.Latitude, item.Longitude, item.Locality, item.Province, brandText);
}
var grid = new GridView();
grid.DataSource = report;
grid.DataBind();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=" + title + ".xls");
Response.ContentType = "application/ms-excel";
Response.Charset = string.Empty;
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grid.RenderControl(htw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
catch (Exception ex)
{
LogError(ex);
}
return View("Index", reports);
}
Дело в том, это работает на моей локальной машине, Я открываю проект, я его компилирую, я запускаю его, и он работает с одинаковой информацией или данными из Production, то же самое происходит с QA, потому что они используют одну и ту же серверную базу данных.
GetReports работает отлично, он не входит в try catch, он просто работает в моей среде разработки. Возможно, что-то связанное с excel на серверах?
Может быть, это связано с IIS или серверами, на которых развертывается приложение ?.
Есть ли код ошибки, когда он не возвращает excel? – juanvan
Извините, я поместил эту информацию жирным шрифтом, забыл поставить то, что происходит при загрузке файла в excel. – user3442470
, поскольку вы по существу экспортируете HTML в этот файл (который можно прочитать в excel), можете ли вы открыть файл в текстовом редакторе и посмотреть, есть ли в нем какой-либо контент? Возможно, он каким-то образом поврежден – ADyson