13 MB的字节数组给出了asp.net中的内存不足异常

时间:2013-11-13 04:41:55

标签: asp.net arrays memory byte allocation

我有一个应用程序,它通过将HTML转换为字节数组将HTML转换为PDF。但是,我观察到,当我的字节数组大小超过 13 MB 时,它会给出:OutOfMemoryException

据我所知,我的32位机器中的变量最多可以分配2GB,我也可以处理其他变量。那么理想情况下我不应该忘记记忆,不是吗?

另外,当我最初将字节数组大小声明为 1 gb 时,它不会给出错误但是当它被分配了数据时,数组的大小会调整大小根据数据的大小,当它超过 13 gb 时,它会崩溃吗?

为什么数组调整大小当我已经声明它要保存 1gb 内存?

*的 *编辑:

以下是导致错误的代码行:

objpage.Layout(html1); //html1 holds my huge full HTML which is of approx 5.5k word doc                 //pages 

pdfBuffer = new byte[1073741824]; //declare the byte array of size 1 gb,no error here.  //Note, i just added this declaration, this is not the cause of the problem, it wasn't //initially there 

pdfBuffer = document1.WriteToMemory(); //This is my API method of the third party tool  //which converts pdf document object to byte array. This line is where the error comes (my //array of 1 GB gets resized to 13+ MB) 

2 个答案:

答案 0 :(得分:0)

我之前有类似的问题,

我尝试在webconfig文件中编辑一些代码,这对我有用。

<system.web>
<httpRuntime executionTimeout="100" maxRequestLength="819200" useFullyQualifiedRedirectUrl="false"/>
</system.web>

您是否尝试过编辑执行时间和最大请求​​长度?尝试改变它并给它一个更高的数字。

答案 1 :(得分:0)

尝试一次

 <system.web>
 <httpRuntime maxRequestLength="2000000000" executionTimeout="99999999"/>
 <pages validateRequest="false"/>
 </system.web>

根据您的应用程序增加值