ThinkGeo.com    |     Documentation    |     Premium Support

The given key was not present in the dictionary - ThinkGeo.MapSuite.WebEdition.ContextMenu.DRQ=(String DhQ=)

Hi,


We have an unusual issue in our ASP.Net app.


Using 5.0.29.0 we get the following exception on clicking on a Context menu that changes the GoogleMapType at server side.


This occurs in IE8 only.


Chrome, IE9, Firefox are all fine.


I have managed to reproduce the exact error in s sample project also by the following process



        
  1. IE8 Browse to TestForm.aspx. [Tab 1]

  2.     
  3. Right click on map - View - Hybrid

  4.     
  5. Open the same page in another tab [Tab 2] in IE 8

  6.     
  7. Right click on map - View - Hybrid

  8.     
  9. Click on Tab 1

  10.     
  11. Right click on map - View - Hybrid


As its the same error it may point to the cause of the error in our main app.


The following is the stack trace


The given key was not present in the dictionary. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.


Source Error:


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 


Stack Trace:




[KeyNotFoundException: The given key was not present in the dictionary.]

   System.Collections.Generic.Dictionary`2.get_Item(TKey key) +9627953

   System.Collections.ObjectModel.KeyedCollection`2.get_Item(TKey key) +9497841

   ThinkGeo.MapSuite.WebEdition.ContextMenu.DRQ=(String DhQ=) +149

   ThinkGeo.MapSuite.WebEdition.Map.kxQ=(String[] lBQ=) +276

   ThinkGeo.MapSuite.WebEdition.Map.hRQ=(String hhQ=) +315

   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13

   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176

   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563


 


 


 


Liam



Context_Menu_issue.zip (186 KB)

Liam, 
  
 Thanks for your sample, I reproduce your problem in IE9 because I haven’t found a IE8 for test. 
  
 The problem caused by shared session, in fact we have some other problem caused by the same reason. 
  
 In IE if you only open a new tab, the new page use the same session with original one, it’s difference with FF and Chrome. I think you can choose File -> New session in IE to avoid this problem. 
  
 I will report this to our developer and ask them work for this problem. 
  
 Regards, 
  
 Don 


Hi Don,


In our main application we use a session object to maintain state in the maps as we have on some pages a main application map and another map that appears in a wizard.


The issue appears also though on pages with a single map and using a single browser tab.


Our main map is in a master page if thats relevant.


Can you give me details of the other problems caused by a shared session in IE..


Wrt the IE8 test. IE9 is applied as an update so it can be removed fromthe control panel Program and Features\Installed updates which will cause the system to revert back to IE8. [Create a Restore Point before uninstalling the update so you can quickly revert to IE9 after the test]. This works for my system (W7).


Liam



Hi Liam, 
  
 Please download the latest WebEditionFull5.0.47.0DllPackage.zip and have another try. 
  
 Our developer changed code today and should fixed your issue, I cannot reproduce it follow yesterday’s steps now. 
  
 Regards, 
  
 Don

Hi Don,


That worked fine, thanks.


Liam



Liam, 
  
 You’re welcome. 
  
 Regards, 
  
 Don