0

我有一个使用 MVC3 Razor 制作的 Web 应用程序。

应用程序在浏览器中正常启动,但在文本框中输入一些值并单击搜索按钮后出现错误

给定的键不在字典中”。

这只发生在 Windows server 2008 R2 中。在 Windows 7、Windows server 2008 sp1 等其他操作系统中,它工作正常。

下面是堆栈跟踪

[KeyNotFoundException: The given key was not present in the dictionary.]
   System.Collections.Generic.Dictionary`2.get_Item(TKey key) +12686831
   CVR_Prototype.Controllers.HomeController.CvrDetailsCompleted() +171
   lambda_method(Closure , ControllerBase , Object[] ) +79
   System.Web.Mvc.Async.<>c__DisplayClass7.<BeginExecute>b__5(IAsyncResult asyncResult) +288
   System.Web.Mvc.Async.<>c__DisplayClass41.<BeginInvokeAsynchronousActionMethod>b__40(IAsyncResult asyncResult) +22
   System.Web.Mvc.Async.<>c__DisplayClass3b.<BeginInvokeActionMethodWithFilters>b__35() +129
   System.Web.Mvc.Async.<>c__DisplayClass51.<InvokeActionMethodFilterAsynchronously>b__4b() +810887
   System.Web.Mvc.Async.<>c__DisplayClass51.<InvokeActionMethodFilterAsynchronously>b__4b() +810887
   System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__38(IAsyncResult asyncResult) +15
   System.Web.Mvc.Async.<>c__DisplayClass2c.<BeginInvokeAction>b__22() +33
   System.Web.Mvc.Async.<>c__DisplayClass27.<BeginInvokeAction>b__24(IAsyncResult asyncResult) +811468
   System.Web.Mvc.<>c__DisplayClass19.<BeginExecuteCore>b__14(IAsyncResult asyncResult) +28
   System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20
   System.Web.Mvc.AsyncController.EndExecuteCore(IAsyncResult asyncResult) +67
   System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20
   System.Web.Mvc.AsyncController.EndExecute(IAsyncResult asyncResult) +53
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__4(IAsyncResult asyncResult) +42
   System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
   System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +136
4

1 回答 1

0

资料来源http ://shahvaibhav.com/solving-the-given-key-was-not-present-in-the-dictionary-error-of-visual-studio-2010/

在开发 mvc3 razor 应用程序时,我遇到了一个奇怪的错误“字典中不存在给定的键”。

在谷歌搜索了几个小时后,我找到了这个错误的解决方案。

实际上这个错误意味着“这通常意味着您已经安装了一个自定义数据提供程序,使用该提供程序创建了一个服务器资源管理器连接,然后在不删除服务器资源管理器条目的情况下卸载了提供程序”要解决这个错误你必须做的第一件事关闭所有视觉工作室实例。

现在转到您的用户 AppData 目录(例如 C:\Users\Administrator\AppData)(注意:如果您关闭了“显示隐藏文件和文件夹”,AppData 可能不会显示在 Windows 资源管理器中)

n AppData 转到 Roaming > Microsoft > Visual Studio > 10.0 > ServerExplorer

在那里您将找到名为 DefaultView.SEView 的文件。该文件存储所有连接。

这是一个纯 XML 文件,因此理论上,您可以通过其 Label 定位无效连接,然后删除包含的 DataViewNode XML 元素。在实践中,我对此并没有太多的运气——该文件通过索引存储 blob 与连接的连接,因此删除单个项目可能会使这些索引失效。但是,如果您定义了很多连接并且您不想重新创建它们,那么可能值得尝试一下,以防您比我更幸运。否则,只需删除 DefaultView.SEView 文件。

现在重新启动视觉工作室并完成。现在你摆脱了那个糟糕的错误。

于 2012-08-02T11:59:15.117 回答