ThinkGeo.com    |     Documentation    |     Premium Support

Exception on Proj4Projection.Finalize()

We see this application error in the eventlog for MapSuite.Core.Proj4Projection.Finalize(). Not sure when it occurs and how. Any information on this issue and how to resolve it is truly appreciated.


Event Type: Error

Event Source: ASP.NET 2.0.50727.0

Event Category: None


Description:

An unhandled exception occurred and the process was terminated.


Exception: System.Reflection.TargetInvocationException


Message: Exception has been thrown by the target of an invocation.


StackTrace:    at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)

   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)

   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)

   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

   at ThinkGeo.MapSuite.Core.Proj4Projection.xebc36fa7da52d8d7(IntPtr x4fa9e7eeb5ea7ffa)

   at ThinkGeo.MapSuite.Core.Proj4Projection.CloseCore()

   at ThinkGeo.MapSuite.Core.Projection.Close()

   at ThinkGeo.MapSuite.Core.Proj4Projection.Finalize()


InnerException: System.AccessViolationException


Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.


StackTrace:    at Proj4Extension.Proj4Extensionx86.pj_free(IntPtr projPJ)

   at Proj4Extension.Proj4Extensionx86.Free(IntPtr projPJ)


For more information, see Help and Support Center at go.microsoft.com/fwlink/events.asp.

 


 



GNak, 
  
 Thanks for your post and information. 
  
 I am not sure how this exception was happening, while as far as I know, the Proj4Projection is trying to use the third party library which is C++ library. So, this problem may be rising when multiple users are trying to access it at the same time. 
  
 One possible solution is to replace the Proj4Projection with ManagedProj4Projection; Their interfaces are very similar so the replacement should be very easy. Differently, the ManagedProj4Projection library is a native .net library, so this replacement should solve the problem. 
  
 Any more questions just feel free to let me know. 
  
 Thanks. 
  
 Yale 


GNak, 
  
   I suggest you use the ManagedProj4Projection as well.  The native C++ version is not thread safe at all.  The managed version works very well and has the same interface. 
  
 David

Hi, 
  
 Just thought I’d mention that we’ve been using the ManagedProj4Projection library for some time now and we’ve found it to be extremely reliable. A number of bugs in the 3rd party library just don’t happen with the ThinkGeo component. 
  
 Best regards, 
  
 Gary 


Gary, 
  
   Glad to hear is is stable for you, we have gotten nothing but good news from our version.  We will be marking the old one obsolete in the next release.  The unmanaged version has too many threading issues. 
  
 David