I've scoured the forums and Googled every iteration of the error I can muster and haven't been able to find any relevant help.
We're running two Exchange 2010 Hub/CAS servers in a Windows NLB (CAS array) and two Exchange 2010 Mailbox servers in a DAG - this is in the production site. There is one more Exchange 2010 server in our DR site running all the 2010 roles (and separate CAS array). All of the production servers are at Exchange 2010 SP2 with RU5 v2.
We receive Event ID 4 for MSExchange Control Panel regularly in the Hub event logs for one of the test user mailboxes that the Test-OutlookConnectivity script creates to use with SCOM. In this case the
test user mailbox is on one of the 2010 mailbox servers in the production site. The full details of the Event are below.
I'm hopeful someone here will be able to offer insight. I have not rebuilt the performance counter library yet ( http://support.microsoft.com/kb/300956?wa=wsignin1.0) because there are others who have encountered the same issue, have rebuilt the counters and it creates other issues and only temporarily gets rid of the Event log messages.
Current user: 'internaldomain.com/All Users/extest_a944e940ae3a4'
Request for URL 'https://webmail.externaldomain.com/ecp/default.aspx' failed with the following error:
System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at Microsoft.Exchange.Data.PropertyBag.GetCalculatedPropertyValue(ProviderPropertyDefinition propertyDefinition)
at Microsoft.Exchange.Data.PropertyBag.get_Item(PropertyDefinition key)
at Microsoft.Exchange.Data.Directory.ADPropertyBag.get_Item(PropertyDefinition key)
at Microsoft.Exchange.Data.ConfigurableObject.get_Item(PropertyDefinition propertyDefinition)
at Microsoft.Exchange.Data.Directory.ADObject.get_Item(PropertyDefinition propertyDefinition)
at Microsoft.Exchange.Data.Directory.OwaSegmentationSettings.get_Item(ADPropertyDefinition owaFeature)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacQuery.OwaSegmentationQueryProcessor.TryIsInRole(ExchangeRunspaceConfiguration rbacConfiguration)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacQuery.RbacQueryProcessor.IsInRole(ExchangeRunspaceConfiguration rbacConfiguration)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacPrincipal.IsInRole(String rbacQuery, Boolean& canCache)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacPrincipal.IsInRole(String role)
at System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal)
at System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb)
at System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb)
at System.Web.Security.UrlAuthorizationModule.IsUserAllowedToPath(HttpContext context, VirtualPath virtualPath)
at System.Web.SiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node)
at System.Web.StaticSiteMapProvider.GetChildNodes(SiteMapNode node)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateNavTree()
at Microsoft.Exchange.Management.ControlPanel._Default.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
--- End of inner exception stack trace ---
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.default_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at Microsoft.Exchange.Data.PropertyBag.GetCalculatedPropertyValue(ProviderPropertyDefinition propertyDefinition)
at Microsoft.Exchange.Data.PropertyBag.get_Item(PropertyDefinition key)
at Microsoft.Exchange.Data.Directory.ADPropertyBag.get_Item(PropertyDefinition key)
at Microsoft.Exchange.Data.ConfigurableObject.get_Item(PropertyDefinition propertyDefinition)
at Microsoft.Exchange.Data.Directory.ADObject.get_Item(PropertyDefinition propertyDefinition)
at Microsoft.Exchange.Data.Directory.OwaSegmentationSettings.get_Item(ADPropertyDefinition owaFeature)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacQuery.OwaSegmentationQueryProcessor.TryIsInRole(ExchangeRunspaceConfiguration rbacConfiguration)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacQuery.RbacQueryProcessor.IsInRole(ExchangeRunspaceConfiguration rbacConfiguration)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacPrincipal.IsInRole(String rbacQuery, Boolean& canCache)
at Microsoft.Exchange.PowerShell.RbacHostingTools.RbacPrincipal.IsInRole(String role)
at System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal)
at System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb)
at System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb)
at System.Web.Security.UrlAuthorizationModule.IsUserAllowedToPath(HttpContext context, VirtualPath virtualPath)
at System.Web.SiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node)
at System.Web.StaticSiteMapProvider.GetChildNodes(SiteMapNode node)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
at Microsoft.Exchange.Management.ControlPanel._Default.CreateNavTree()
at Microsoft.Exchange.Management.ControlPanel._Default.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)