13 MB的字节数组在asp.net中出现内存不足异常
我有一个通过将HTML转换成字节数组将其转换为PDF的应用程序。然而,我观察到,当字节数组大小超过13MB时,它给出:13 MB的字节数组在asp.net中出现内存不足异常,asp.net,arrays,memory,byte,allocation,Asp.net,Arrays,Memory,Byte,Allocation,我有一个通过将HTML转换成字节数组将其转换为PDF的应用程序。然而,我观察到,当字节数组大小超过13MB时,它给出:OutOfMemoryException 据我所知,我可以在我的32位机器中为变量分配最大2GB的内存,我还可以处理其他使用的变量。那我最好不要记性差,不是吗 另外,当我最初将字节数组大小声明为1 gb时,它不会给出错误,但当它被分配数据时,数组的大小会根据数据的大小调整大小,当它超过13 gb时,它会崩溃吗 为什么阵列会调整大小,而我已经声明它可以容纳1gb内存 **编辑: 以
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)
我以前也有类似的问题 我试着在
webconfig
文件中编辑一些代码,这对我很有用
<system.web>
<httpRuntime executionTimeout="100" maxRequestLength="819200" useFullyQualifiedRedirectUrl="false"/>
</system.web>
您是否尝试过编辑执行超时和最大请求长度?尝试更改它并给它一个更大的数字。尝试一次
<system.web>
<httpRuntime maxRequestLength="2000000000" executionTimeout="99999999"/>
<pages validateRequest="false"/>
</system.web>
这里根据您的应用程序增加值什么类型的异常?它给出了“OutOfMemoryException”,向我们展示了您的一些代码。如果看不到某些东西,很难进行调试。web应用程序通常限制为300MB。如果增长阵列,它需要分配一个新副本,因此不能将阵列增长到150 MB以上。由于应用程序已经在为其他事情使用一些内存,它甚至比这个还要少。这将有助于查看出现异常的代码。很难将代码放在这里,因为它太大了,而且代码块没有任何用处,因为我的HTML字符串会转到5500字左右的文件页,我使用第三方(HIQPDF)工具将其转换为PDF文档。然后,该工具中的一个方法将整个文档转换为字节数组,如下所示:感谢您的建议,但是我当前的参数已经具有更高的值。以下是我当前的web.config条目:您需要为IIS和应用程序设置最大值。我的代码也无法在本地计算机上运行,因此目前没有IIS设置问题。