我正在上传.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>
帮帮我
答案 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);