解决Webservice内存溢出-用XmlWriter
2024-08-29 17:59:53
XmlWriter 表示一个编写器,该编写器提供一种快速、非缓存和只进的方式来生成包含 XML 数据的流或文件。这个就可以不占用内存,将数据放入磁盘中。也就不会出现内存溢出
public class FileExercise : System.Web.Services.WebService
{ [WebMethod]
public void HelloWorld()
{
// 生成临时文件
string tFName = System.IO.Path.GetTempFileName();//@"C:\ResponseStream.txt"
System.IO.FileStream stream = System.IO.File.Open(tFName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
XmlWriter writer = XmlWriter.Create(stream); writer.WriteStartDocument();
writer.WriteRaw("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
writer.WriteRaw("<soap:Body>");
writer.WriteStartElement(MethodInfo.GetCurrentMethod().Name + "Response", @"http://tempuri.org/");
writer.Flush(); // 返回的主体
writer.WriteString("Hello word!");
// 将内存缓冲数据写进磁盘 ,当数据量大的时候分批处理并及时写入磁盘,可以降低内存压力
writer.Flush(); writer.WriteEndElement();
writer.WriteRaw("</soap:Body>");
writer.WriteRaw("</soap:Envelope>");
writer.WriteEndDocument();
writer.Flush(); writer.Close();
stream.Close(); HttpContext context = HttpContext.Current;
//context.Response.ContentType = "application/soap+xml; charset=utf-8";
context.Response.WriteFile(tFName);
return;
}
}
}
最新文章
- 使用sklearn做单机特征工程
- Python-07-面向对象(进阶篇)
- swift 001
- CSS3--overflow属性
- BestCoder Round #69 (div.2)(hdu5611)
- IT谁谁说女子不如男行业
- MySql 安装及0基础使用具体解释
- C语言程序设计第五次作业——循环结构(1)
- css 四周边框角加粗效果
- 京东饭粒捡漏V1.14
- 实现mypwd和mybash
- Python3学习笔记26-unittest模块
- npm WARN unmet dependency错误解决方法
- p3168 [CQOI2015]任务查询系统(差分+主席树)
- Spring 的@Required注释
- 图片宽度为2000px,使图片在电脑不同分辨率下都水平居中,不压缩。
- FancyBox-经典的jQuery Lightbox插件
- PL/SQL Developer 中文乱码问题的解决
- 玩转X-CTR100 l STM32F4 l HMC5983/HMC5883L三轴磁力计传感器
- Django----Request对象&;Response对象
热门文章
- Oracle字符函数(转换大小写,替换等)
- VS2010安装MSDN
- ListView 实现分组
- ctrl+alt+l:linux 锁屏 win+l:windows锁屏
- java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
- ubuntu14.04 安装 StudioZend12
- 人物角色群体攻击判定(三)Physics.OverlapSphere(群体攻击)
- pyqt 托盘例子学习
- IOS 用drawRect 画表格
- eclipse配置maven + 创建maven项目