MapSuite Team,
I’ve encountered an exception, shown below, that occurred after I had zoomed-out. My application has roughly 26 ShapeFileFeature Layers, 16 MrSid images, and a number of InMemoryFeature Layers.
I am using V7.0.0.14.
After I had zoomed to a level 17 I could see that a refresh was in progress and the MrSid and other layers were drawing, but then the .NET Exception occurred.
Any suggestions?
Thanks,
Dennis
Event Source: .NET Runtime
Event Category: None
Event ID: 1026
Date: 7/17/2013
Time: 1:22:18 PM
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Reflection.TargetInvocationException
Stack:
at System.RuntimeMethodHandle._InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.SignatureStruct ByRef, System.Reflection.MethodAttributes, System.RuntimeType)
at System.RuntimeMethodHandle.InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.Signature, System.Reflection.MethodAttributes, System.RuntimeType)
at System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, Boolean)
at System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
at ThinkGeo.MapSuite.Core.GisImage.4UA=(Int32, Int32, Int32, Int32, Int32, Int32)
at ThinkGeo.MapSuite.Core.MrSidRasterSource.GetImageCore(ThinkGeo.MapSuite.Core.RectangleShape, Int32, Int32)
at ThinkGeo.MapSuite.Core.RasterSource.GetImage(ThinkGeo.MapSuite.Core.RectangleShape, Int32, Int32)
at ThinkGeo.MapSuite.Core.RasterLayer.DrawCore(ThinkGeo.MapSuite.Core.GeoCanvas, System.Collections.ObjectModel.Collection`1<ThinkGeo.MapSuite.Core.SimpleCandidate>)
at ThinkGeo.MapSuite.Core.Layer.Draw(ThinkGeo.MapSuite.Core.GeoCanvas, System.Collections.ObjectModel.Collection`1<ThinkGeo.MapSuite.Core.SimpleCandidate>)
at ThinkGeo.MapSuite.WpfDesktopEdition.LayerTile.DrawCore(ThinkGeo.MapSuite.Core.GeoCanvas)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.8RU=(ThinkGeo.MapSuite.Core.GeoCanvas)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.Draw(ThinkGeo.MapSuite.Core.GeoCanvas)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.9hU=(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
MrSid .NET Runtime Exception
Hi Dennis,
The exception thrown by a separeted dll. So it’s very hard to track it, our MrSid image don’t throw it, so I think that should related with data.
Does the exception easy to reproduce there? If so, could you plesae try to add single MrSid image each time and sent us the images which will throw this exception?
Regards,
Don
Don,
This exception does not happen on my development machine, but only on a target machine. What I am thinking is I did not upgrade the target machine from V6 to V.7 properly in terms of MrSid images. For V6 I copied the “Developer Reference\System32\System32\Map Suite 6.0” to the \Windows\System32 Directory. However, for V7 I did not copy any dll’s.
Do I need to install C:\Program Files (x86)\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\Merge Module\MapSuiteMrSidX86.msm?
Would you please explain to me what has to be done to upgrade a target machine for the proper MrSid dll’s? Also, I know there are Merge Modules in V7.0.0.14, which is the build I cam currently using, but I do not know how to install these Merge Modules. Would you offer an explanation on how to install these?
Regards,
Dennis
Don,
I managed to create a Setup.exe using Visual Studio V10 from the MapSuite V7.0 Merge Module MapSuiteMrSidX86.msm. After running Setup.exe on my target machine and starting my application I received an error from MapSuite stating that it could not load MSVCP100D.dll.
It also created a directory in \Windows\system32 named GeoRoasterX86. I could not get this to work so copied the MapSuiteGeoRasterx86 directory from MapSuite V6. But I do not think this is right and suspect this is what is causing the exception that I am seeing.
On my development machine I do not see this exception. It is only on my target machine where I see it, which is why I don’t think it is a data issue.
Any assistance would be appreciated. Under V7 is there not some directory with the proper dll’s that can be copied to \Windows\system32 as there is for V6?
Thanks,
Dennis
Hi Dennis,
Yes, you have to install the MapSuiteMrSidX86.msm if target machine based X86. The two other necessary MergeModule for MrSid is Microsoft_VC100_DebugCRT_x86.msm and Microsoft_VC100_CRT_x86.msm.
For install it, you can easily create a Setup Project in VS and "Add Merge Module" to it, then build a install package.
Any question please let us know.
Regards,
Don
Don,
After including Microsoft_VC100_DebugCRT_x86.msm and Microsoft_VC100_CRT_x86.msm in the Setup/msi I was able to successfully install and run the MrSid’s without any .NET exceptions. Thanks for your tips on this.
I installed the merge modules on one target machine, where everything worked just fine. Then I thought why should I not be able to simply copy the “\Windows\system32\Map Suite V7.0” directory from one target machine to another? Well, I can copy, but then at execution time I receive the same error message that states unable to load MSVCP100D.dll. In MapSuite V6 I was able to simply copy the directory and it all worked. Do you have any tips on how to do a simple copy for MapSuite V7 without the need for an install? I hate to have to require an install for a .NET application.
Your assistance always appreciated.
Dennis
Hi Dennis,
You should can find your missed dll here: C:\Program Files (x86)\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\MsvcrX86
What’s the OS your customer using? Have you tried to copy everything follow the ReadMe.txt in your Developer Reference\System32 folder?
Regards,
Don
Don,
Once I get to work I will do the copy from …\Map Suite 7.0\MsvcrX86 and see what that does.
The target machine is Windows XP 32bit, my development machine is Windows-7 64bit.
What is in the ReadMe.txt has nothing for MrSid’s so I did not do that copy.
Regards,
Dennis
Hi Dennis,
Please copy all dlls in GeoRasterX86 and MsvcrX86 to customer’s machine and let me know whether that works for you.
Regards
Don
Don,
I copied the dll’s as you suggested but still I get the same error when starting the application.
I copied as the following directory structures:
\windows\system32\Map Suite 7.0\GeoRasterX86
\windows\system32\Map Suite 7.0\MsvcrX86
If I run the Setup.exe then it all works.
Any suggestions?
Thanks,
Dennis
Don,
I’m now getting another .NET exception in relation, I believe, to MrSid’s. This appears to occur when the user is zooming in/out in multiple successions before the last zoom action has completed.
Below are the exceptions they both appear in this case.
Dennis
Event Type: Error
Event Source: .NET Runtime 4.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 7/24/2013
Time: 12:56:48 PM
User: N/A
Computer: PDT101
Description:
EventType clr20r3, P1 viewofcity.exe, P2 1.1.0.0, P3 51ef6244, P4 wpfdesktopedition, P5 7.0.0.0, P6 51c838dc, P7 326, P8 4f, P9 system.nullreferenceexception, P10 NIL.
Event Type: Error
Event Source: .NET Runtime
Event Category: None
Event ID: 1026
Date: 7/24/2013
Time: 12:57:07 PM
User: N/A
Computer: PDT101
Description:
Application: ViewOfCity.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.DrawException(ThinkGeo.MapSuite.Core.GeoCanvas, System.Exception)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.Draw(ThinkGeo.MapSuite.Core.GeoCanvas)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.9hU=(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Hi Dennis,
Thanks for your query.
About “\windows\system32\Map Suite 7.0\MsvcrX86”, actually it should be “\windows\system32\MsvcrX86”,
About the new exception, we tried to recreate it but it didn’t show up,would you please provide us more information, like the some code, or your .sid file, or if possible, a self contained sample is hightly appreciated.
Waiting for your further information
Summer
Summer,
I continue to experience these .NET exceptions, this time it is from a ShapeFileFeatureLayer. I don’t believe the data is the problem as this same exact data in displayed in other mapping products and functions just fine. These crashes are within the MapSuite code so there is no way for me to trap and recover.
Also, these exceptions only started when I upgraded from MapSuite V6 to MapSuite V7. I have 16 MrSid’s for a total of 11GB, 28 shape files, a number of InMemoryFeatureLayers all spread out amongst a number of overlays. One of my shape layers is a polygon shape that is 500MB in size so it is quite large and causes degraded drawing speeds. I also have GPS feeds of roughly 30/second so there is a lot of activity going on in the map. As long as the user waits for each action to complete before starting the next everything appears ok. These are actions such as zoom in/out and panning the map.
Do you have any suggestions as how to detect what is going on here? And giving you a sample application would be very difficult as I’d have to give you my whole application and data.
Regards,
Dennis
Event Type: Error
Event Source: .NET Runtime 4.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 7/26/2013
Time: 11:48:36 AM
User: N/A
Computer: PDT101
Description:
EventType clr20r3, P1 ViewOfCity.exe, P2 1.1.0.0, P3 51ef6244, P4 mapsuitecore, P5 7.0.0.0, P6 51c83622, P7 f15, P8 0, P9 system.invalidoperationexception, P10 NIL.
Event Type: Error
Event Source: .NET Runtime
Event Category: None
Event ID: 1026
Date: 7/26/2013
Time: 11:48:40 AM
User: N/A
Computer: PDT101
Description:
Application: ViewOfCity.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
Stack:
at ThinkGeo.MapSuite.Core.ShapeFileFeatureLayer.CloneDeepCore()
at ThinkGeo.MapSuite.Core.Layer.CloneDeep()
at ThinkGeo.MapSuite.WpfDesktopEdition.LayerOverlay.PRg=(ThinkGeo.MapSuite.Core.Layer)
at ThinkGeo.MapSuite.WpfDesktopEdition.LayerOverlay.PBg=()
at ThinkGeo.MapSuite.WpfDesktopEdition.LayerOverlay+<>c__DisplayClass1.<UpdateCopiedLayers>b__0()
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart()
Summer,
I also continue to have the other situation of having to install the merge module for the MrSid’s. In MapSuite V6 there was no install that was required, but cannot get this to work in V7.
In your response of 7-25-2013 you stated to copy the MapSuite and other dll’s to “\windows\system32\MsvcrX86”. I have done this, but still continue to get errors upon attempting to access the MrSid’s. The error that I receive is “Could not find MapSuiteGeoRasterX86.dll assembly”.
How does one simply copy the proper dll’s as opposed to installing the merge modules.
My target machine is Windows XP, if that makes a difference.
Your assistance is appreciated.
Regards,
Dennis
Hi Dennis,
About Copying the dlls, would you please follow the following conditions?
Condition 1:
If your OS type is X86:
Please copy Folder "C:\Program Files\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\GeoRasterX86"
InTo
C:\Windows\System32\Map Suite 7.0
Please Copy dlls in Folder "C:\Program Files\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\MsvcrX86"
InTo
"C:\Windows\System32"
Condiction2:
If your OS type is X64:
If your build Target Plateform is X64
Please copy Folder "C:\Program Files(86)\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\GeoRasterX64"
InTo
"C:\Windows\SysWOW64\Map Suite 7.0"
Please Copy dlls in Folder "C:\Program Files\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\MsvcrX64"
InTo
"C:\Windows\System32"
Condition 3
If your OS type is X64:
If your build Target Plateform is X86
Please copy Folder "C:\Program Files(86)\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\GeoRasterX86"
InTo
"C:\Windows\SysWOW64\Map Suite 7.0"
Please Copy dlls in Folder "C:\Program Files\ThinkGeo\Map Suite Wpf Desktop Full Edition 7.0\Developer Reference\System32\System32\Map Suite 7.0\MsvcrX86"
InTo
"C:\Windows\SysWOW64"
About the exceptions for shapefile and mrsid, here is a way to narrow down the bug location, would you please foreache shapefiles and Mrsid files and then load them seperately and find out the shapefile or MrSid file that cause the exception, and then send it to us for a further debug?
Waiting for your further information
Summer
Summer,
For the copying of the dll’s for my MrSid’s files I copied the dll’s per condition 1 and that worked. So that is how to simply copy the dll’s without performing an install. Thanks for your assistance on this one.
As far as the .NET exceptions I’ve been experiencing I should have been a bit more detailed. These exceptions are intermittent, they don’t happen all the time. The application can run for days and then all of a sudden encounter one of these exceptions. So I do not believe it is related to any one layer, but rather to the number and the configuration of the layers in terms of the overlays. In some cases I am doing a Refresh on the map control and I believe I should be doing a Refresh on the overlay, so I am going to be changing that and then see if that makes a difference.
Regards,
Dennis
Dennis,
Thanks for your share about your envrionment, that should be helpful if someone met same exception in future.
I think if we missed some dlls, the exception will be thrown when some speical functions called from map, so that’s why exception throw intermittent.
Regards,
Don