.xml大文件上传错误 - 使用C#在asp.net中的System.OutOfMemoryException

时间:2016-06-23 06:18:14

标签: c# asp.net

我正在上传.xml文件,但收到错误' System.OutOfMemoryException '在带有C#的asp.net中的 ds.GetXml(); 上。

小.xml文件工作正常但大文件没有。 我正在尝试使用60 MB的文件但是它失败并且在 ds.GetXml()方法上获得内存异常。

详情视图: System.OutOfMemoryException:由于内存不足异常,函数评估被禁用。

DataSet dsCompendium = General.getDataSet4mXML(strFilePath,strFileName); 
// this is custom function to get dataset from XML : getDataSet4mXML(string,string)
DataTable dtCompendium = dsCompendium.Tables[1];
strXML = dsCompendium.GetXml();

<httpRuntime targetFramework="4.5.1" maxRequestLength="1048576" />     

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="1073741824" />
  </requestFiltering>
</security>

帮帮我

3 个答案:

答案 0 :(得分:0)

请参阅web.config中httpRunTime的maxRequestLength值的值。尝试将其更改为更大的数字。

答案 1 :(得分:0)

似乎 HTTP网络请求大小超出您的情况。

4MB默认值在machine.config中设置,但您可以在web.config中覆盖它。例如,要将上传限制扩展到20MB,您可以这样做:

<system.web>
  <httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>

修改

对于IIS7及更高版本,您还需要添加以下行:

 <system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
   </security>
 </system.webServer>

注意:maxAllowedContentLength以字节为单位

答案 2 :(得分:0)

尝试使用DataSet ReadXml(XmlReader)方法。

创建XmlReader

FileStream st = File.Open(@"filepath", FileMode.Open);
XmlReader reader = XmlReader.Create(st);  
DataSet ds = new DataSet();  
ds.ReadXml(reader);