【问题标题】:How to solve Exception of type 'System.OutOfMemoryException' was thrown.Server Error in '/' Application如何解决“System.OutOfMemoryException”类型的异常被抛出。“/”应用程序中的服务器错误
【发布时间】:2018-01-03 14:18:36
【问题描述】:

我在 asp.net 网站上有一个按钮,当我输入某些值时,它会下载 Excel 文件,它指出此错误。

我后面的代码如下

 Protected Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click
    Response.Clear()
    Response.AddHeader("content-disposition", "attachment;filename=FileName.xls")
    Response.Charset = ""
    Response.ContentType = "application/vnd.xls"
    Dim stringWrite As New System.IO.StringWriter()
    Dim htmlWrite As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(stringWrite)
    GridView6.RenderControl(htmlWrite)
    Response.Write(stringWrite.ToString())
    Response.[End]()
End Sub

aspx中的按钮如下:

<asp:Button ID="Button4" runat="server" Text="Extract RTD Raw Data" nclick="Button4_Click" 
                 BackColor="#FF9966"  CssClass="myButton" Font-Bold="True" 
                 Font-Italic="True" />

我正在获取此堆栈跟踪。

[OutOfMemoryException:引发了“System.OutOfMemoryException”类型的异常。]
System.Web.Util.HttpEncoder.UrlDecode(Byte[] 字节,Int32 偏移量, Int32 计数,Encoding 编码)+76
System.Web.HttpValueCollection.FillFromEncodedBytes(字节 [] 字节, 编码编码)+164
System.Web.HttpRequest.FillInFormCollection() +77 [HttpException (0x80004005): URL 编码的表单数据无效。]
System.Web.HttpRequest.FillInFormCollection() +130
System.Web.HttpRequest.EnsureForm() +69
System.Web.HttpRequest.get_Form() +13
System.Web.HttpRequest.get_HasForm() +9800635
System.Web.UI.Page.GetCollectionBasedOnMethod(布尔值 dontReturnNull) +95 System.Web.UI.Page.DeterminePostBackMode() +69 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint) +220

【问题讨论】:

  • 开始使用专门的库来创建 Excel 文件,例如 EPPlus。您现在所做的只是创建一个扩展名为 .xls 的 HTML 页面。
  • 遇到这个错误时GridView6的数据源是不是特别大?如果是这样,那么您可能需要将其分块传输到客户端,而不是尝试复制整个缓冲区(因为看起来您正在合法地达到进程内存限制)。有关一些选项,请参见此处:stackoverflow.com/q/608480/861565
  • @jadarnel 感谢您的建议,我将尝试通过选项
  • 通过在 Web.config 文件中插入 &lt;machineKey validationKey="929DF4BCF13739428C8C765842BD122C653C28F688D399F216942E5438AA880B4A793C0772A51660FDA9A69B079AB3B0ADFCFC14941F5BBD673BC72E9804DF44" decryptionKey="0B4443E8C132884733E8B26587FFCE50562CF8CF9980BAD4813A95D54A7A369B" validation="SHA1" decryption="AES" /&gt; 解决了错误。感谢您的指导和帮助。

标签: asp.net .net excel vb.net ms-access


【解决方案1】:

在Web.config文件中插入以下标签&lt;machineKey validationKey="929DF4BCF13739428C8C765842BD122C653C28F688D39‌​9F216942E5438AA880B4‌​A793C0772A51660FDA9A‌​69B079AB3B0ADFCFC149‌​41F5BBD673BC72E9804D‌​F44" decryptionKey="0B4443E8C132884733E8B26587FFCE50562CF8CF9980B‌​AD4813A95D54A7A369B" validation="SHA1" decryption="AES" /&gt;后没有错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    相关资源
    最近更新 更多