ThinkGeo.com    |     Documentation    |     Premium Support

LegendAdornmentLayer error: Parameter is not valid

I am using MapSuite web 5.5.153.0 version. This is the version we used in our last deployment.


It was working on last deployment. Now I don't know what caused the problem when we show legends on the map, it only shows a pink screen. Also we catch the error as below:


Parameter is not valid.


Server stack trace: 

   at System.Drawing.Bitmap..ctor(Stream stream)

   at ThinkGeo.MapSuite.Core.GdiPlusGeoCanvas.BeginDrawingCore(Object nativeImage, RectangleShape worldExtent, GeographyUnit drawingMapUnit)

   at ThinkGeo.MapSuite.Core.GeoCanvas.BeginDrawing(Object nativeImage, RectangleShape worldExtent, GeographyUnit drawingMapUnit)

   at ThinkGeo.MapSuite.Core.LegendAdornmentLayer.DrawCore(GeoCanvas canvas, Collection`1 labelsInAllLayers)

   at ThinkGeo.MapSuite.Core.Layer.Draw(GeoCanvas canvas, Collection`1 labelsInAllLayers)

   at ThinkGeo.MapSuite.WebEdition.AdornmentOverlay.DrawCore(GeoCanvas canvas)

   at ThinkGeo.MapSuite.WebEdition.AdornmentOverlay.Draw(GeoCanvas canvas)

   at ohM=.5hM=.ProcessRequestCore(HttpContext context)

   at ohM=.5hM=.ProcessRequest(HttpContext context)

   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)

   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)


Exception rethrown at [0]: 

   at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)

   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)

   at System.Action`1.EndInvoke(IAsyncResult result)

   at ohM=.5hM=.EndProcessRequest(IAsyncResult result)

   at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)

Source Url : /adornment_GeoResource.axd


I know upgrading the product might fix the problem but I want to know if there an easy fix so we don't have to reinstall everything on the server.



Hi Ching, 
  
 Maybe the it happens while zooming out, the reason is that image become smaller and smaller and it cannot return a valid stream. You can get the 6.0.247.0 or 6.0.0.247 and have a try. 
  
 Regards, 
 Edgar

The newer version somewhat fixed the error. I am still getting pink screen sometimes but with different error. I think mostly when zoom in very close. 

However, there another bigger problem I ran into. The newer dlls require Microsoft.SqlServer.Types.dll version 11. I was using version 10. I replaced 10 with 11 and mark it copy local. It works fine when running it in Visual studio, but when I deploy it to our test server, it displays message "DataReader.GetFieldType(2) return null" on the top left of the map. No features are shown, no pink screen either. 

Is that because some components are still referencing version 10? How do I fix this? The database is Sql Server 2008 R2.


Another thing is the newer build is missing ProjNET.dll and ProjNetExtension.dll which were included in previous build.



Hi Ching,


There are additional dependencies other than the Microsoft.SqlServer.Types.dll. Please see the following link where we explain the need for the Microsoft .NET 4.0 Client profile and the Microsoft VC 10.0 Runtime. gis.thinkgeo.com/Support/Dis...x#geometry


If you do not want to use the new Microsoft.SqlServer.Types.dll you are welcome to set your BaseShape.GeometryLibrary to Managed to continue using the NTS geometry functions.


With the 6.0 version I believe we updated the Proj wrapper so if you are using Proj4Projection methods you will need to deploy some new dlls as shown in our Map Suite Web Edition Dependency Guide: wiki.thinkgeo.com/wiki/Map_S...cies_Guide



Is there an easy fix without upgrading to 6.0? I just want to get the legends showing. It was working, for some unknown reason, it stopped working. I don’t want to take the risk of changing all the dlls and run into problems with the rest of the application. 
 We can upgrade to 6.0 when we have more time to work on it.

Hi Ching,  
 This might be an easy fix but there are many variables that could might be causing this issue. 
  
 Before we can assist you we need to try and narrow down the problem or setup a sample that can recreate the issue. 
 Have there been any changes to your code or to the location of the underlying map data? 
 Does this occur with a specific browser or operating system? 
 Is this only occuring when you apply a legend to the map?  
 Does this only occur when you attempt to apply a legend to a specific set of layers?

Have there been any changes to your code or to the location of the underlying map data?  
 there are some code changes, I tried to roll back the changes and does not help. 
 Does this occur with a specific browser or operating system?  
 I tried Windows 8 and Windows 7, IE 10, IE 9, IE 8, IE 7, and Chrome with the same error. 
 Is this only occuring when you apply a legend to the map?  
 Yes. 
 Does this only occur when you attempt to apply a legend to a specific set of layers? 
 Only two layers currently has legends, both layers get the same error. 
  
 My assumption is if 6.0 fixed the error, then may be the latest build of 5.0 also fix the error? Is there a way I can get the latest build of 5.0? I cannot download it from helpdesk portal anymore.

After I did more testing, this error seems to associate with whether .NET Framework 4.5 is installed on the machine. 
 It is working when .NET Framework 4.5 is not installed.

Hi Ching, 



I would like to reference our Release Cycle Guide that states 'we will keep compatibility with one framework version prior to the current one'. At this time we do not verify support for the .NET 4.5 framework so you may be limited to the .NET 3.0 or .NET 3.5 framework with the Map Suite 5.5 version. 

wiki.thinkgeo.com/wiki/Map_S...patibility



Hi Ryan, 
  
 Can I still get the latest build of 5.5? I want to make sure if 6.0 is the only option.

Hi Ching,  
  
 Please check your e-mail for information about downloading the latest 5.5 builds from our FTP server.