日期:2014-05-18  浏览次数:20786 次

ArcEngine, windows服务程序老自动停止的问题
我加了个System.Timers.timer控件,
我在属性中设置了
timer1.Interval 为 30000;
timer1.Enabled 为true;
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  IWorkspaceFactory wsf = new FileGDBWorkspaceFactoryClass();
  IWorkspace ws = wsf.OpenFromFile(@"F:\xiaoluoGIS\testFGDBSource.gdb", 0);
  System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
}
为什么在服务启动后能够运行一次或两次后,就不能再运行了,然后再查看服务时服务停止了,这是为什么,查看进程管理器,发现所占内存越来越大,
我在winform里测试过,是可以多次执行的

------解决方案--------------------
这个还是跟踪一下日志吧
------解决方案--------------------
还有,把IWorkspaceFactory 什么的设成全局的
IWorkspace ws = wsf.OpenFromFile(@"F:\xiaoluoGIS\testFGDBSource.gdb", 0);
改成
IFeatureWorkspace ws = wsf.OpenFromFile(@"F:\xiaoluoGIS\testFGDBSource.gdb", 0);
试试