【发布时间】:2012-05-25 20:23:22
【问题描述】:
使用 Web 服务发送大数据时出现“内存不足异常”。它适用于少量数据。 场景是这样的: 在这里,我有一个名为 clsMovie 的实体类。在这里,用户上传了超过 250 MB 的大文件。此文件被转换为数组字节并分配给 clsMovie 类的 MovieData 成员。 当此类的对象被传递给具有大量数据(大字节数组)的 Web 服务时,我得到“内存不足异常”。
代码是:
MovieResponse objM = service.SaveProductMovie(objMovieEnt); // I get "Out of Memory Exception".
[DataContract]
[Serializable]
public class clsMovie
{
[DataMember]
public byte[] MovieData { get; set; }
[DataMember]
public string MovieType { get; set; }
[DataMember]
public int MovieSize { get; set; }
}
我尝试使用 WSE 3.0 工具,但它在 VS 2008 中不受支持,我也搜索了很多,但都是徒劳的。 谁有解决方案?
【问题讨论】:
-
将 web 服务更改为使用分块(例如以 1MB 为单位发送)应该可以消除此错误。使用 Web 服务并发送大量数据并不是真正可行的方法。
-
@Reniuz : 这不是 dat 的副本。
-
@CodingBarfield : 如何分块发送数据?
-
你配置内存限制了吗?
标签: c# asp.net web-services