web services文件上传内存问题

5207 2008-07-28 09:33:26
使用web services 提供文件上传服务,公布了一个接口,上传的文件以byte[]数组作为参数传入。web.config里的设置如下:

<httpRuntime
executionTimeout="600"
maxRequestLength="951200"
requestLengthDiskThreshold="1024"
useFullyQualifiedRedirectUrl="true"
minFreeThreads="8"
minLocalRequestFreeThreads="8"
appRequestQueueLimit="100"
enableVersionHeader="true"/>


现在问题就是在一上传,服务器的内存就会一直上升,直到内存用完系统掉错。。
...全文
137 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
那要看你的代码,而不是你的配置
gyc 2008-07-30
  • 打赏
  • 举报
回复
哦, 那可能是 内没有释放的问题吧~
主要可能是 ASP.NET内部的问题吧
ccnccyj 2008-07-29
  • 打赏
  • 举报
回复
如果上传大文件,与你的上传代码有关,小文件一般不会有问题。
guyan033 2008-07-29
  • 打赏
  • 举报
回复
与WEB.CONFIG 无关吧
5207 2008-07-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gyc 的回复:]
估计是 ASP.NET 会把接受的数据缓存到内中,才会有这个问题吧

楼主可以试试 WSE 看看

WSE我倒是用过, 开启MTOM后, 速度确实快了, 但 至于内存,我还没有测试过


或者,试试 WCF中 的流 功能

[/Quote]

WCF,我刚接触到.net,而且程序是别人写的,我只是发现了问题,需要查原因。
5207 2008-07-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hitpop 的回复:]
应该是楼主接口代码的问题,与WEB.CONFIG 无关的.
我也做了一个WebSerivce上传图片的接口,web.config文件都没有建.代码让你参考一下.
C# code[WebMethod]publicvoidUploadFile(byte[] by,stringFileName)
{if(!Directory.Exists("D:\\interpub\\wwwroot\\Img\\"))
Directory.CreateDirectory("D:\\interpub\\wwwroot\\Img\\");using(FileStream fs=File.Create("D:\\interpub\\wwwroot\\Img\\"+FileName))

[/Quote]

上传一个20M以上的文件,然后查看你的服务器内存
5207 2008-07-29
  • 打赏
  • 举报
回复
谢谢各位!

我在测试后发现:内存主要是驻留在aspnet_wp.exe中,每上传一个文件内存就会增加一点,小文件上传很快。大一点的文件,如我传了一个26M的文件,就会定一会,而且上传后内存会增长200多M。

不是很清楚什么原因。。

服务端接收文件的类已经释放了。
gyc 2008-07-29
  • 打赏
  • 举报
回复
估计是 ASP.NET 会把接受的数据缓存到内中,才会有这个问题吧

楼主可以试试 WSE 看看

WSE我倒是用过, 开启MTOM后, 速度确实快了, 但 至于内存,我还没有测试过


或者,试试 WCF中 的流 功能
BillMhw 2008-07-28
  • 打赏
  • 举报
回复
估计问题出在你的webservice开放接口的实现代码上
OOQQOO 2008-07-28
  • 打赏
  • 举报
回复
友情帮顶
hitpop 2008-07-28
  • 打赏
  • 举报
回复
应该是楼主接口代码的问题,与WEB.CONFIG 无关的.
我也做了一个WebSerivce上传图片的接口,web.config文件都没有建.代码让你参考一下.

[WebMethod]
public void UploadFile(byte[] by, string FileName)
{
if (!Directory.Exists("D:\\interpub\\wwwroot\\Img\\"))
Directory.CreateDirectory("D:\\interpub\\wwwroot\\Img\\");

using (FileStream fs = File.Create("D:\\interpub\\wwwroot\\Img\\" + FileName))
{
fs.Write(by, 0, by.Length);
fs.Flush();
fs.Close();
}
}
Jive论坛的优点 是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。 主要功能如下: 快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问, 可通过Web管理界面动态监测缓存大小,根据访问量动态调整缓存。 强大的可定制的过滤功能,可以编制Java程序过滤插件对实现超强功能过滤。 附件上传功能,贴子中可以支持多种类型文件,包括图片和PDF文件,可以设置上传最大字节数 个性图片随意设置,并可以上传自己的个性图片。 支持Html标签,可上传plugIn定制特定的标签功能。 增强 SMTP 发信能力,目前已经可以同时支持 SMTP、ESMTP 和 Sendmail 来发信。 与新闻组newsgroup交换信息,可以将互联网上任何一个newsgroup的信息转换成论坛的帖子, 以论坛形式浏览新闻组。 灵活的、可扩展的的用户权限控制系统, 可通过Web管理界面动态设定论坛资源的用户访问权限。 论坛数据导出,可通过Web管理界面将论坛数据以树形结构导出到XML文件, 方便Web Services等拓展应用。 论坛版主功能,可设定论坛版主独立管理功能。 积分功能。 Jive论坛的开发是很有意思, 一开始的Jive 1.2.4是开源的,后来开发者“见钱眼开”, 从Jive 2.1开始不再开源,但是还可以让开发者从CVS下载研读, 在Jive 2.1中有Licence的限制。 本站提供的是Jive 1.2.4开源代码下载,供研读,学习设计模式。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧