当我从Visual Studio测试时,我的应用程序导出CSV很好,但是当我将它作为Web应用程序部署到Azure时,我得到一个错误代码:错误代码:ERR_INVALID_RESPONSE。
以下是我使用的方法:
public void ExportEmpReport(int? er_id)
{
var er_hdr = db.expense_report_hdr.Include(w => w.employeeExpUser).Where(x => x.ID == er_id).FirstOrDefault();
StringWriter sw = new StringWriter();
sw.WriteLine("Employee Name: " + er_hdr.employeeExpUser.fullname + ", Period: " + er_hdr.period + ", Expense Report ID: " + er_id);
sw.WriteLine("Date of Expense , Expense Class , Detail , Cust/Conv , Notes , Amount , GL Code , Project Code");
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=ExpenseReport_" + er_id + ".csv");
Response.ContentType = "text/csv";
var lines = db.expense_report_line.Where(y => y.er_id == er_id);
foreach (var line in lines)
{
string exp_class = line.expenseType.expense.ToString().Replace(",", "");
string detail = (line.expense_detail != null) ? line.expense_detail.Replace(",", "") : "";
string cust_conv = (line.cust_conv != null) ? line.cust_conv.Replace(",", "") : "";
string notes = (line.notes != null) ? line.notes.Replace(",", "") : "";
sw.WriteLine(string.Format("{0},{1},{2},{3},{4},{5},{6},{7}", line.expense_date, exp_class, detail, cust_conv, notes, line.amount, line.gl_code.GL_code, line.project_code));
}
Response.Write(sw.ToString());
Response.End();
}
答案 0 :(得分:1)
以下是您可能会尝试对其进行问题排查的一些建议:
:一种。在本地调试Web应用程序,同时连接到Azure上的数据库。表格是否正确读取?
如果代码无法从数据库中读取数据,请确保将数据库更新为最新的模式。
<强> B中。如果它正确读取数据,请逐步调试,并准确查看失败的位置。
如果在特定行失败,请删除/替换某些代码行,直到本地Web应用程序针对Azure上的数据库正确运行。您可能能够识别有问题的代码行,然后在此处进行报告以允许其他人帮助您进一步排除故障。
<强>℃。一旦您使用本地应用程序对抗Azure上的数据库,请将更新的项目代码部署到Azure上的Web应用程序,以查看它是否仍能正常运行。
如果它仍然不起作用,可能是您的Web App上有一个设置阻止它成功运行代码。
<强> d。在Azure中的Web App上检查.NET Framework的版本。选项应为v3.5或v4.6(对于非Core 1.0应用程序)。
如果选择了错误的版本,请确保选择正确的版本。
<强>电子。启用在Azure上运行的Web应用程序的远程调试。
您可以在“应用程序设置”边栏选项卡中打开/关闭远程调试功能,您还可以在其中选择VS版本(2012,2013,2015)。打开它以确定它失败的代码行。