ThinkGeo.com    |     Blog    |     Wiki    |     Support

Silverlight 4009 error

When using a ThingGeo Map control in a Silverlight Foatable window (floatablewindow.codeplex.com/) I get the following error after the Map control is initialized:


Error:  Unhandled error in silverlight application


Code: 4009 


Category:  ManagedRuntimeError

Message:  Element is already the child of another element. 


 


I'm using IE8, Silverlight 4, VS 2010, ThinkGeo Silverlight Edition.  I created a class that inherits from ThinkGeo.MapSuite.SilverlightEdition.Map.  I tried adding this control in a XAML file, creating a field in the container window, creating the instance in the window load event...  None of this fixed the error.


I have tested the Map control in XAML UserControl and it works fine.  There could be a problem including it in Silverlight Child or Foatable windows.  I need to include the Map in a FloatableWindow, also in my application there could be more than one FloatableWindow with a Map active at the same time...


Any suggestions?


 



Hello CESAR, 
  
 Thanks for your post, do you have more detailed stack trace? 
  
 And I did some research with google, it’s said the reason of 4009 something like “key is already in the collection”, caused by adding the same object to a panel twice, could you please try only have one FloatableWindow? 
  
 Regards, 
  
 Gary

I'm doing my tests only with one FloatableWindow.


The stack trace is: 



en System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() 

en System.Net.DownloadStringCompletedEventArgs.get_Result() 

en ThinkGeo.MapSuite.SilverlightEdition.Map.x7d3e844ef1be85fd(Object xd9272088e65bd176, DownloadStringCompletedEventArgs xc2fd4c0ed406cdb7) 

en System.Net.WebClient.OnDownloadStringCompleted(DownloadStringCompletedEventArgs e) 

en System.Net.WebClient.DownloadStringOperationCompleted(Object arg) 



The inner exception stack trace is: 



en System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) 

en System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 

en System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) 

en System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result) 



And the most inner exception is: 



en System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 

en System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<endgetresponse>b__4(Object sendState) 

en System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<beginonui>b__1(Object sendState) 

</beginonui></endgetresponse>


I have a more specific exception message:


"Exception during the operation.  The result is not valid.  Verify the InnerException to obtain more details."  And the inner exception says:  "Remote server returned an error: NotFound"


It is important to mention that the Map control is just placed in the window, I'm not connecting it to any data source, it is empty.


<endgetresponse><beginonui>

Thanks, 

César</beginonui></endgetresponse>



Hello CESAR, 
  
 I did more investiation, but I think I need a demo to reproduce it, can you let give me a brief description and simple demo for recreation? If it’s proved as bug, I can create an Gemini issue and let you know the result as soon as we fix it. 
  
 Regards, 
  
 Gary

Hello, 
 I isolated usages of the MapSuite Map control and fortunately the problem went away.  It seems that there are some other controls in the same window that are causing the problem, however, I don’t understand how was MapSuite.SilverlightEdition.Map involved in the  
 exception stack trace…  I’ll try to fix the error focusing on the other components. 
  
 Thanks, 
 César

Hello CESAR, 
  
 Ok, thanks for your help, if you find any way to recreate this problem, feel free to let us know. 
  
 Regards, 
  
 Gary