<telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="false" Skin="Sunset"</telerik:RadSkinManager>
The page was working ok in production environment for about a year. Recently, I upgraded to Telerik.Web.UI.dll 2011.2.712.40. After that I started getting exceptions of this type:
Exception type: ArgumentException
Exception message: Item has already been added. Key in dictionary: 'Telerik.Web.SkinsAssembly' Key being added: 'Telerik.Web.SkinsAssembly'
at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value)
at Telerik.Web.SkinRegistrar.GetDefaultSkinsAssemblyName()
at Telerik.Web.SkinRegistrar.GetAllEmbeddedSkins(RadSkinManager skinManager)
at Telerik.Web.UI.RadSkinManager.FillSkins(RadComboBox chooser)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The error seems to be random, it appeared twice within 10 days. So far i can't reproduce it. I get notified about the error from my web server alert service and I don't know if users get any visual indications of the error or no. I have no way of asking the users.
Any clues?
25 Answers, 1 is accepted
Thanks for reporting this observation. Our development team is currently looking into it and will be getting back with more information. Please, stand by.
Regards, Tsvetoslav
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
This exception is not expected - what the stack traces says is that a duplicate entry for "Telerik.Web.Skins" is being added to the AppSettings configuration setting. Could you check if you are not modifying the AppSettings at some place in your code and if the problem persists, send us a small runnable example of you implementation so that we can take a closer look.
Thanks in advance.
Regards, Tsvetoslav
the Telerik team
Error Occurred: 10/19/2011 4:13 PM
Message: Item has already been added. Key in dictionary: 'Telerik.Web.SkinsAssembly' Key being added: 'Telerik.Web.SkinsAssembly'
Server: xxxxxxxxxxxxx
User Identity: xxxxxxxxxx
at System.Collections.Hashtable.
at System.Collections.Hashtable.
at System.Collections.
at System.Collections.
at System.Collections.
at System.Collections.
at Telerik.Web.SkinRegistrar.
at Telerik.Web.SkinRegistrar.
at Telerik.Web.SkinRegistrar.
at Telerik.Web.UI.Common.
at Telerik.Web.UI.Common.
I'm using version 2011.2.712.35
-Mark
We have not yet encountered this problem neither could we reproduce it and hence no solution has been looked for. I'd ask you the same question addressed to Mark: could you check if you are not modifying the AppSettings at some place in your code and if not, upgrade to the latest internal build of the controls or the beta of the Q3 2011 one and see if the problem persists.
Greetings, Tsvetoslav
the Telerik team
Same problem here which occurs randomly but each time we get the error message... the IP demonstrates that a robot was browsing the website.
Here is a fresh example, hope it may help..
** Events **
---------------
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 10/27/2011 3:41:58 AM
Event time (UTC): 10/27/2011 1:41:58 AM
Event ID: 9f982257e01e4deda4e103e61a3b9fa1 Event sequence: 6 Event occurrence: 1 Event detail code: 0
Process information:
Process ID: 1356
Process name: w3wp.exe
Account name: AUTORITE NT\SERVICE RÉSEAU
Exception information:
Exception type: System.ArgumentException
Exception message: Item has already been added. Key in dictionary: 'Telerik.Web.SkinsAssembly' Key being added: 'Telerik.Web.SkinsAssembly'
Request information:
Request URL: http://www.saniverte.com/Default.aspx
Request path: /Default.aspx
User host address: 178.154.200.158
User:
Is authenticated: False
Authentication Type:
Thread account name: AUTORITE NT\SERVICE RÉSEAU
Thread information:
Thread ID: 5
Thread account name: AUTORITE NT\SERVICE RÉSEAU
Is impersonating: False
Stack trace: at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
at System.Collections.Hashtable.Add(Object key, Object value)
at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value)
at System.Collections.Specialized.NameObjectCollectionBase.BaseSet(String name, Object value)
at System.Collections.Specialized.NameValueCollection.Set(String name, String value)
at Telerik.Web.SkinRegistrar.GetDefaultSkinsAssemblyName()
at Telerik.Web.SkinRegistrar.GetAllEmbeddedSkins(RadSkinManager skinManager)
at Telerik.Web.UI.RadSkinManager.FillSkins(RadComboBox chooser)
at Telerik.Web.UI.RadSkinManager.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Thanks :-)
Dider
This exception could happen also in case you have set the AppSettings["Telerik.Web.SkinsAssembly"] to an empty string. Please, check that. In addition, did you upgrade to the latest version of the controls, is the result the same?
Regards, Tsvetoslav
the Telerik team
We get the problem wit both versions 2011.2712.40 and 2011.2.915.40. This morning there was 2 errors caused by MSN bot during the night when it was browsing www.atxoom.com. This website uses 2011.2.915.40. I made a special copy of the web.config here: www.atxoom.com/web.config.txt . There is no reference to Telerik.Web.SkinsAssembly in AppSettings.
Yesterday, before submitting my comment, I tried to add <add key="Telerik.Web.SkinsAssembly" value="Telerik.Web.SkinsAssembly" /> as suggested in an other article from Telerik community website but it gave troubles as we are using skins (!):
Thread information:
Thread ID: 19
Thread account name: x
Is impersonating: False
Stack trace: at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at Telerik.Web.SkinRegistrar.GetAllEmbeddedSkins(RadSkinManager skinManager)
at Telerik.Web.UI.RadSkinManager.FillSkins(RadComboBox chooser)
at Telerik.Web.UI.RadSkinManager.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
From now we are running with: <add key="Telerik.Web.SkinsAssembly" value="DISABLED" /> (as suggested in the previously mentioned article). I'll tell you within a few days if this particular web still get problems :-)
Our Masterpage looks like this:
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
></
telerik:RadAjaxManager
>
<
telerik:RadSkinManager
ID
=
"RadSkinManager1"
Runat
=
"server"
></
telerik:RadSkinManager
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
LoadingPanelID
=
"LoadingPanel1"
clientevents-onrequeststart
=
"OnResponseStart"
clientevents-onresponseend
=
"OnResponseEnd"
>
<
div
class
=
"Container"
>
..... .... ..... ....
</
div
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager1"
modal
=
"true"
showcontentduringload
=
"true"
animation
=
"None"
visiblestatusbar
=
"false"
behaviors
=
"Move"
runat
=
"server"
></
telerik:RadWindowManager
>
</
telerik:RadAjaxPanel
>
<
telerik:RadAjaxLoadingPanel
ID
=
"LoadingPanel1"
runat
=
"server"
/>
</
form
>
Best regards,
Didier
We will be awaiting your feedback.
Greetings, Tsvetoslav
the Telerik team
It's happened only 2 or 3 times on a pretty busy site (10,000-15,000 page requests per day), and I've never seen it on any of the other site that utilize the same code base.
I was just looking to see if this was a known problem. Sorry I don't have any good input other than to report that I've seen this, too.
I am glad to inform you that our development team managed to track the issue and a fix for that will be available in the next latest internal build of the controls that is coming out by the middle of next week. Thanks for the cooperation - the telerik points of all the participants in the forum discussion who have reported the issue have been updated accordingly.
Regards, Tsvetoslav
the Telerik team
Thanks
Yes, the latest internal build of the controls does contain the fix for the issue.
Greetings, Tsvetoslav
the Telerik team
The fix in question is still not available in any of the official versions of RadControls for ASP.NET AJAX. However you can download the Latest Internal Build from your account and use it while the release of the Q3 2011 SP.
Kind regards,
Iana Tsolova
the Telerik team
We are using the 2012 Q2 beta and are gettting these errors at random!
Is this issue really solved or is it back again?
System.ArgumentException: Item has already been added. Key in dictionary: 'Telerik.Web.SkinsAssembly' Key being added: 'Telerik.Web.SkinsAssembly'
at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value)
at Telerik.Web.SkinRegistrar.GetDefaultSkinsAssemblyName()
at Telerik.Web.SkinRegistrar.GetAllEmbeddedSkinAttributes(RadSkinManager skinManager, Type controlType)
at Telerik.Web.SkinRegistrar.GetRuntimeSkin(ISkinnableControl control)
at Telerik.Web.UI.RadGrid.ResolveGridImageUrl(String imageName, Boolean canBeSpriteButton)
at Telerik.Web.UI.GridColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem)
at Telerik.Web.UI.GridTemplateColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem)
at Telerik.Web.UI.GridHeaderItem.Initialize(GridColumn[] columns)
at Telerik.Web.UI.GridItem.SetupItem(Boolean dataBind, Object dataItem, GridColumn[] columns, ControlCollection rows)
at Telerik.Web.UI.GridTableView.CreateHeaderItem(Boolean useDataSource, GridColumn[] copiedColumnSet, GridTHead thead)
at Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource)
at Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource)
at System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data)
at System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data)
at Telerik.Web.UI.GridTableView.PerformSelect()
at Telerik.Web.UI.GridTableView.DataBind()
at Telerik.Web.UI.RadGrid.AutoDataBind(GridRebindReason rebindReason)
at Telerik.Web.UI.RadGrid.OnLoad(EventArgs e)
at Caesar.Web.UI.WebControls.Grid.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Our Version=2012.1.215.35
Anyone have any additional thoughts on this?
Are you using the default Telerik.Web.UI.Skins assembly or you have embedded skins disabled? Is the page with RadGrid on it under a intense user traffic?
Please, provide information on the above questions.
Regards,
Tsvetoslav
the Telerik team
Thanks
Still get this error with latest internal.
Seems to happen easily on startup of the web-application if lots of simultaneous users are requesting a page.
Something isn't thread safe?
Regards
Caesar
Obviously the web server is not able to handle properly multiple access to the same AppSettings variable so our development team has decided to consider alternative ways to avoid the thread conflicts such as implementing a thread lock on the problematic piece of code. We will be getting back with more information when the fix is ready.
Greetings,
Tsvetoslav
the Telerik team
Our development team decided to go with the thread locking solution and the fix has already been implemented. Please, download the next latest internal build of the controls that should be out by the end of the current week or the beginning of the next one.
Regards,
Tsvetoslav
the Telerik team
We experienced the same error today. We have an internal web application with around 300 concurrent users. As far as I know, only one user had the error, but it stopped them being able to work and would like to stop it being repeated.
Is the fix for this available in a production release yet?
Thanks,
Craig
Yes, it is available since the Q3 2011 release.
Greetings, Tsvetoslav
the Telerik team