【问题标题】:Response.WriteFile writing the webpage source instead of the text fileResponse.WriteFile 写入网页源代码而不是文本文件
【发布时间】:2015-06-25 23:26:39
【问题描述】:

当我尝试从共享位置获取文本文件时,当用户从 Web 浏览器打开它时,它不显示文本文件内容,而是显示页面源。如何避免这种情况?我究竟做错了什么?这是我的代码。但是当我在本地运行时,我可以看到文本文件数据并且我也正在获取页面源。我的英文不好,如有错误请见谅。

 GridViewRow rw = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
 LinkButton lnkTxtFile = (LinkButton)rw.FindControl("lnkTxtFile");
 string strFilename = lnkTxtFile.Text.Replace("/","\\");
 System.IO.FileInfo targetFile = new System.IO.FileInfo(strFilename);
 Response.Clear();
 Response.AddHeader("Content-Disposition", "attachment; filename=" + targetFile.Name);
 Response.ContentType = "application/octet-stream";
 Response.WriteFile(targetFile.FullName);
 HttpContext.Current.ApplicationInstance.CompleteRequest();

【问题讨论】:

  • 如果你提供一个文本文件,你的 MIME 类型不应该是text/plain吗?
  • 那么targetFile.FullName 的值是多少?
  • 您是否尝试将 mime 设置为 text/html? Response.ContentType = "文本/html";不知道你在问什么:)
  • 即使我输入“text/plain”它也不起作用。
  • targetFile.FullName = "\\\\cchclu05\\public\\MetroE_Warehouse\\盐湖城\\盐湖城发货\\感恩节行政套房\\LEHIUTCD00W.txt"

标签: c# response.write


【解决方案1】:

HttpContext.Current.ApplicationInstance.CompleteRequest(); 更改为Response.End();

我怀疑CompleteRequest() 正在渲染页面的其余部分。 Response.End() 关闭响应流并立即返回给客户端。

【讨论】:

  • 如果我这样做,我会收到异常“无法评估表达式,因为代码已优化或本机框架位于调用堆栈的顶部。”但它的工作。如何避免该异常?
【解决方案2】:

尝试替换

HttpContext.Current.ApplicationInstance.CompleteRequest();

Response.End();

【讨论】:

  • 如果我这样做,我会收到异常“无法评估表达式,因为代码已优化或本机框架位于调用堆栈的顶部。”但它的工作。如何避免该异常?
  • 当我调试它时它工作正常我的意思是我可以打开文件但是当我部署它时它不工作。你有什么想法吗?
  • 将日志记录添加到代码中,并记录抛出的异常(如果有)。检查权限、可下载文件的路径等
  • 我遇到了异常。 System.Web.HttpResponse.WriteFile(String filename) at Configs.gvConfigs_RowCommand(Object sender, GridViewCommandEventArgs e) 在 C:\Users\bpucha1103c\Desktop\CellBackHaul_Publish\Configs.aspx.cs:line 59 2013-02-05 13:31 :21,412 [19] WARN System.Web.UI.Page [(null)] - Logging:System.IO.IOException: 使用的帐户是计算机帐户。使用您的全局用户帐户或本地用户帐户访问此服务器。
  • 您在生产中使用的用户帐户似乎没有访问您拥有文件的服务器的权限。当您修复权限错误时,一切都会正常工作。如果对我的回答有帮助,别忘了点赞,并将其中一个答案标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
相关资源
最近更新 更多