我们有一个使用WCF服务的C#.Net应用程序.该应用程序部署在
Windows服务应用程序的生产服务器中.该模块的一部分负责为工作人员今天工作的较小区域创建形状文件((* .shp,* .dbf),并将其发送到PDA.
要写形状文件,我们使用第三方dll,NetTopologySuite
GisSharpBlog.NetTopologySuite.IO.ShapefileWriter
这也是在C#中. (我不知道它的引用是否使用非托管代码.)
系统可能会工作正常一段时间说一个星期.突然间我们得到一个例外说法
Attempted to read or write protected memory.
This is often an indication that other memory is corrupt.
从写入方法,我们写几何集合到形状文件.
sfw.Write(FileName,new GeometryCollection(gc.ToArray()));
(GeometryCollection也来自第三方dll,GeoAPI.dll)
这个错误导致了整个服务,使它无法使用.然后,我们将重新启动服务,并尝试再次运行相同的数据,它可以正常工作一周,直到再次崩溃.它只发生在生产和随机时间.我们无法找到问题的原因.
许多论坛建议这可能是因为某些非托管代码中的内存泄漏.但是我们找不到哪一个.
我们也准备重写创建新的形状文件的部分.
请帮我解决这个问题.
让我知道如果需要更多的细节.提前致谢.