Загрузка любой страницы MVC завершается с ошибкой «Элемент с таким же ключом уже добавлен».

У меня периодически возникает проблема, которая появляется только на одном сервере и приводит к ошибке загрузки всех страниц MVC с ошибкой "Элемент с таким же ключом уже добавлен. "

Перезапуск пула приложений устраняет проблему, но до тех пор загрузка любой страницы mvc вызывает следующее исключение:

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 10/11/2012 08:09:24 
Event time (UTC): 10/11/2012 08:09:24 
Event ID: d76264aedc4241d4bce9247692510466 
Event sequence: 6407 
Event occurrence: 30 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/21/ROOT-2-129969647741292058 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: d:\websites\SiteAndAppPoolName\ 
    Machine name: UKSERVER 

Process information: 
    Process ID: 6156 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\SiteAndAppPoolName 

Exception information: 
    Exception type: ArgumentException 
    Exception message: An item with the same key has already been added.

Server stack trace: 
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Web.WebPages.Scope.WebConfigScopeDictionary.c__DisplayClass4.b__0()
   at System.Lazy`1.CreateValue()

Exception rethrown at [0]: 
   at System.Lazy`1.get_Value()
   at System.Web.WebPages.Scope.WebConfigScopeDictionary.TryGetValue(Object key, Object& value)
   at System.Web.Mvc.ViewContext.ScopeGet[TValue](IDictionary`2 scope, String name, TValue defaultValue)
   at System.Web.Mvc.ViewContext.ScopeCache.Get(IDictionary`2 scope, HttpContextBase httpContext)
   at System.Web.Mvc.ViewContext.GetClientValidationEnabled(IDictionary`2 scope, HttpContextBase httpContext)
   at System.Web.Mvc.Html.FormExtensions.FormHelper(HtmlHelper htmlHelper, String formAction, FormMethod method, IDictionary`2 htmlAttributes)
   at System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, String actionName, String controllerName)
   at ASP._Page_Views_Dashboard_Functions_BookingQuickLookup_cshtml.Execute() in d:\Websites\SiteAndAppPoolName\Views\Dashboard\Functions\BookingQuickLookup.cshtml:line 3
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   at ASP._Page_Views_Dashboard_Functions_cshtml.Execute() in d:\Websites\SiteAndAppPoolName\Views\Dashboard\Functions.cshtml:line 5
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper htmlHelper, String partialViewName, Object model)
   at ASP._Page_Views_Dashboard_Index_cshtml.Execute() in d:\Websites\SiteAndAppPoolName\Views\Dashboard\Index.cshtml:line 9
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass1c.b__19()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
   at System.Web.Mvc.Controller.ExecuteCore()
   at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
   at System.Web.Mvc.MvcHandler.c__DisplayClass6.c__DisplayClassb.b__5()
   at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass1.b__0()
   at System.Web.Mvc.MvcHandler.c__DisplayClasse.b__d()
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Request information: 
    Request URL: http://SiteAndAppPoolName.spawtz.com/Dashboard 
    Request path: /Dashboard 
    User host address: 86.164.135.41 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: IIS APPPOOL\SiteAndAppPoolName 

Thread information: 
    Thread ID: 17 
    Thread account name: IIS APPPOOL\SiteAndAppPoolName 
    Is impersonating: False 
    Stack trace:    at System.Lazy`1.get_Value()
   at System.Web.WebPages.Scope.WebConfigScopeDictionary.TryGetValue(Object key, Object& value)
   at System.Web.Mvc.ViewContext.ScopeGet[TValue](IDictionary`2 scope, String name, TValue defaultValue)
   at System.Web.Mvc.ViewContext.ScopeCache.Get(IDictionary`2 scope, HttpContextBase httpContext)
   at System.Web.Mvc.ViewContext.GetClientValidationEnabled(IDictionary`2 scope, HttpContextBase httpContext)
   at System.Web.Mvc.Html.FormExtensions.FormHelper(HtmlHelper htmlHelper, String formAction, FormMethod method, IDictionary`2 htmlAttributes)
   at System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, String actionName, String controllerName)
   at ASP._Page_Views_Dashboard_Functions_BookingQuickLookup_cshtml.Execute() in d:\Websites\SiteAndAppPoolName\Views\Dashboard\Functions\BookingQuickLookup.cshtml:line 3
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   at ASP._Page_Views_Dashboard_Functions_cshtml.Execute() in d:\Websites\SiteAndAppPoolName\Views\Dashboard\Functions.cshtml:line 5
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper htmlHelper, String partialViewName, Object model)
   at ASP._Page_Views_Dashboard_Index_cshtml.Execute() in d:\Websites\SiteAndAppPoolName\Views\Dashboard\Index.cshtml:line 9
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass1c.b__19()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
   at System.Web.Mvc.Controller.ExecuteCore()
   at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
   at System.Web.Mvc.MvcHandler.c__DisplayClass6.c__DisplayClassb.b__5()
   at System.Web.Mvc.Async.AsyncResultWrapper.c__DisplayClass1.b__0()
   at System.Web.Mvc.MvcHandler.c__DisplayClasse.b__d()
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Custom event details: 

Как уже упоминалось, этоs каждое действие MVC, которое выдает эту ошибку до тех пор, пока пул приложений не будет перезапущен, и ошибка, по-видимому, происходит вSystem.Web.WebPages.Scope.WebConfigScopeDictionary.TryGetValue(Object key, Object& value)

Кто-нибудь видел эту проблему раньше? Это'происходит только на этом сервере, в любом из пулов приложений на сервере (не ограничиваясь этим), и перезапуск пула приложений сортирует его.

Любая помощь высоко ценится.

Ура,

Мэтью

РЕДАКТИРОВАТЬ:

Вот файл web.config:



  
    
    
    
      
      
      
      
    
    
      
      
    
  
  
    
  
  
    
      
      
      
      
      
      
      
        
      
      
        
      
    
    
    
    
      
      
    
  
  
    
    
      
        
        
        
        
        
        
      
    
    
    
    
    
    
    
    
      
      
      
    
    
    
    
    
    
    
    
      
        
        
        
        
        
        
        
        
        
        
      
      
        
      
    
    
      
      
      
      
      
    
    
      
      
      
    
  
  
    
      
        
        
      
      
        
        
      
      
        
        
      
      
        
        
      
    
  
  
    
    
      
        
        
        
        
      
    
  
  
    
  
  
    
    
    
      
        
      
    
  
  
    
    
      
      
      
      
      
      
    
    
      
      
      
      
      
      
      
      
    
    
      
        
        
        
        
        
      
    
  
  
    
      
        
        
      
    
  

ИЗМЕНИТЬ СНОВА:

Хорошо, так как кажется, чтоНет простого ответа на вышеупомянутый вопрос, возможно, есть ответ на этот вопрос: Могу ли я каким-то образом настроить IIS для автоматической перезапуска пула приложений после обнаружения указанного количества ошибок в течение определенного периода времени? Я знаю, что могу включить быструю защиту от сбоев, но этоне то, что ям после того, как тогда мне пришлось бы вручную перезапустить пул приложений. В качестве обходного пути (читай: взломать ...) я хочу исправить это, чтобы он перезагружался сам, если получал множество ошибок подряд. Это выполнимо вместо этого?

ОДИН БОЛЬШЕ РЕДАКТИРОВАТЬ

Хорошо, эта ошибка произошла на другом сервере и сегодня утромэто не просто конфиг сервера, который его вызывает. Возможно эточто-то в моем коде, но яЯ в недоумении, как мне поставить диагноз, как я могуне может повторить это и не можетя не могу отладить ... Кажется, мне нужно еще кое-что расследовать.

Ответы на вопрос(2)

Ваш ответ на вопрос