1

我有一个应用程序,它通过将 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) 
4

2 回答 2

0

我以前也有类似的问题,

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

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

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

于 2013-11-13T04:46:11.830 回答
0

试试这个

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

此处根据您的应用增加值

于 2013-11-13T05:54:29.377 回答