我的存储服务器最近在做测试阶段,刚开始运行的时候是没什么问题,能够正常的上传文件,但是运行了一段时间过后比如十个小时,就抛出了:引发类型为“System.OutOfMemoryException”的异常。我把异常写到日志文件里面去,记录到抛异常的位置是:
public RemoteClient(Socket sock)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
this.M_socket = sock;
Console.WriteLine("Client Connected!{0}<--{1}", sock.LocalEndPoint,sock.RemoteEndPoint);
streamToClient = new NetworkStream(sock);
buffer = new byte[BufferSize]; // 在这里抛出了System.OutofMemoryException的异常
}
我的网上查了资料,都说是内存溢出了,这样的情况怎么解决?
注:我的缓存定义大小为 BufferSize=1024 * 1024
public RemoteClient(Socket sock)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
this.M_socket = sock;
Console.WriteLine("Client Connected!{0}<--{1}", sock.LocalEndPoint,sock.RemoteEndPoint);
streamToClient = new NetworkStream(sock);
buffer = new byte[BufferSize]; // 在这里抛出了System.OutofMemoryException的异常
}
我的网上查了资料,都说是内存溢出了,这样的情况怎么解决?
注:我的缓存定义大小为 BufferSize=1024 * 1024
那我应该怎样强行垃圾清理呢?可有示例代码?
及时释放对象,
或者
GC.Collect();
http://msdn.microsoft.com/zh-cn/library/xe0c2357.aspxGC 类
http://msdn.microsoft.com/zh-cn/library/system.gc.aspx