为什么我的ASP.NET应用程序在作为Azure Web应用程序托管时不导出CSV?
当我从Visual Studio测试CSV时,我的应用程序可以导出CSV,但当我将其作为Web应用程序部署到Azure时,而不是导出CSV时,我会得到一个错误代码:ERR_INVALID_RESPONSE 以下是我使用的方法:为什么我的ASP.NET应用程序在作为Azure Web应用程序托管时不导出CSV?,azure,web-applications,asp.net-mvc-5,Azure,Web Applications,Asp.net Mvc 5,当我从Visual Studio测试CSV时,我的应用程序可以导出CSV,但当我将其作为Web应用程序部署到Azure时,而不是导出CSV时,我会得到一个错误代码:ERR_INVALID_RESPONSE 以下是我使用的方法: public void ExportEmpReport(int? er_id) { var er_hdr = db.expense_report_hdr.Include(w => w.employeeExpUser).Where(x =>
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();
}
以下是一些建议,您可以使用这些建议尝试并排除故障: A.在连接到Azure上的DB时,在本地调试web应用程序。这些表格读对了吗 如果代码无法从数据库读取数据,请确保数据库已更新为最新架构 B.如果它正确读取数据,一步一步地调试它,并精确地观察它失败的地方 如果在某一行失败,请删除/替换某些代码行,直到本地web应用程序针对Azure上的DB正确运行。您可能能够识别出有问题的代码行,然后在此报告,以便其他人帮助您进一步排除故障 C.一旦你让它在Azure上的DB上使用本地应用程序,将更新的项目代码部署到Azure上的Web应用程序,以查看它是否仍然正确运行 如果它仍然不工作,可能是您的Web应用程序上有一个设置阻止它成功运行代码 D.在Azure中的Web应用程序上检查.NET Framework的版本。对于非核心1.0应用程序,应选择v3.5或v4.6 如果选择了错误的版本,请确保选择了正确的版本 E.启用Azure上运行的Web应用程序的远程调试
有一个远程调试功能,您可以在应用程序设置刀片中打开/关闭,您还可以选择VS版本2012、2013、2015。打开它以查明它在哪一行代码上出现故障。以下是一些建议,可用于尝试并排除故障: A.在连接到Azure上的DB时,在本地调试web应用程序。这些表格读对了吗 如果代码无法从数据库读取数据,请确保数据库已更新为最新架构 B.如果它正确读取数据,一步一步地调试它,并精确地观察它失败的地方 如果在某一行失败,请删除/替换某些代码行,直到本地web应用程序针对Azure上的DB正确运行。您可能能够识别出有问题的代码行,然后在此报告,以便其他人帮助您进一步排除故障 C.一旦你让它在Azure上的DB上使用本地应用程序,将更新的项目代码部署到Azure上的Web应用程序,以查看它是否仍然正确运行 如果它仍然不工作,可能是您的Web应用程序上有一个设置阻止它成功运行代码 D.在Azure中的Web应用程序上检查.NET Framework的版本。对于非核心1.0应用程序,应选择v3.5或v4.6 如果选择了错误的版本,请确保选择了正确的版本 E.启用Azure上运行的Web应用程序的远程调试
有一个远程调试功能,您可以在应用程序设置刀片中打开/关闭,您还可以选择VS版本2012、2013、2015。打开它以查明它失败的代码行。堆栈跟踪是什么?哪一行引发异常?在Visual Studio中运行时,我没有收到任何堆栈错误。我得到的唯一错误是当它托管在Azure中时。我不知道一旦托管后如何调试它。我只是得到一个可能暂时关闭或可能已永久移动到一个新的网址。错误但是方法是存在的,所以我不知道为什么它说不是。该应用程序在我的本地服务器上运行时非常完美,但不是作为Azure web应用程序运行。您需要查找该应用程序,然后返回此处并询问您仍然存在的任何问题。我们无法为您调试应用程序。堆栈跟踪是什么?哪一行引发异常?在Visual Studio中运行时,我没有收到任何堆栈错误。我得到的唯一错误是当它托管在Azure中时。我不知道一旦托管后如何调试它。我只是得到一个可能暂时关闭或可能已永久移动到一个新的网址。错误但是方法是存在的,所以我不知道为什么它说不是。该应用程序在我的本地服务器上运行时非常完美,但不是作为Azure web应用程序运行。您需要查找该应用程序,然后返回此处并询问您仍然存在的任何问题。我们无法为你调试你的应用程序。很好地为我提供了选择。我在步骤B中发现了一个bug,其中一列在azure DB中的格式与本地DB中的格式不同。我以后一定会参考你的名单。给我选择的机会真是太好了。我在步骤B中发现了一个bug,其中一列在azure DB中的格式与本地DB中的格式不同。我以后一定会参考你的名单。