Remoting 服务器运行一天后,占用内存高达600-700MB,如果继续运行,服务器程序会无缘无故退出。
而且服务器都用了GC.Collect();最小化窗体 也没用,回收的可用内存根本不够用。内存会一直涨,就算我加到2G内存恐怕也不够。

解决方案 »

  1.   

    应该是你程序问题,我使用Remoting,服务器开N天也才占十多M而已!
      

  2.   

    服务器有一个函数A 返回5000行记录 或 一个insert操作 内存就上涨 10-20兆,
    不知楼上的高手是如何使用Remoting的?
      

  3.   

    请教 winxieddd(一剑飘香) 数据库连接 肯定有关闭的。 但是记录集就不知道如何关闭了。
    例:
    服务器有一个函数 ClassA.FunctionA() as dataTable 客户端调用这个函数,  dim table as datatable = a()
    使用后  table.Dispose  table = nothing 
    我一般是这样处理。
      

  4.   

    你怎么得到的这个DataTable?如果你用的是DataReader,那么请最Close此SqlDataReader
      

  5.   

    一般SQL操作都是通过一个自己写的DataAccess执行的。帖上简化的    Public Function ExecQuery(ByVal SQL As String) As DataTable
            Dim Table As New DataTable
            Try
                Dim sqlAdp As New SqlClient.SqlDataAdapter(SQL, GetConnection)
                sqlAdp.Fill(Table)
                sqlAdp.SelectCommand.Connection.Close()
                sqlAdp.SelectCommand.Connection.Dispose()
                sqlAdp.Dispose()
            Catch ex As Exception
                AddLog("Exception_ExecQuery", ex.Message)
            End Try
            Return Table
        End Function
      

  6.   

    请教:
    是不是每个对象用完后都要Dispose 掉,或者NULL掉?如果服务器对象生命周期为无限,客户端请求一个Remoting对象引用后,设为NULL,服务器对象是否就会消失?
      

  7.   

    没必要,如果是实现了IDispose接口的对象都是可以回首的。你有没有加载com组建之类的。
    好好检查以下。