0

MVC3Razorを使用して作成されたWebアプリケーションが1つあります。

アプリケーションはブラウザで正しく起動しますが、テキストボックスに値を入力して検索ボタンをクリックすると、次のようなエラーが発生します。

指定されたキーが辞書に存在しませんでした」。

これは、Windows Server2008R2でのみ発生します。Windows 7、Windows Server 2008 SP1などの他のOSでは、正常に動作します。

以下はスタックトレースです

[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 アプリケーションの開発中に、「指定されたキーが辞書に存在しませんでした」という奇妙なエラーに遭遇しました。

Google で何時間も検索した後、このエラーの解決策を見つけました。

実際には、このエラーは、「これは通常、カスタム データ プロバイダーをインストールし、そのプロバイダーを使用してサーバー エクスプローラー接続を作成し、サーバー エクスプローラーのエントリを削除せずにプロバイダーをアンインストールしたことを意味します」という意味です。すべてのビジュアル スタジオ インスタンスを閉じます。

ここで、ユーザーの AppData ディレクトリ (例: C:\Users\Administrator\AppData) に移動します (注意: [隠しファイルとフォルダーを表示する] がオフになっていると、Windows エクスプローラーに AppData が表示されない場合があります)。

n AppData は、[ローミング] > [Microsoft] > [Visual Studio] > [10.0] > [ServerExplorer] に移動します。

DefaultView.SEView という名前のファイルがあります。このファイルには、すべての接続が保存されます。

これはプレーンな XML ファイルであるため、理論的には、ラベルによって不発接続を特定し、含まれている DataViewNode XML 要素を削除するだけで済みます。実際には、私はこれでうまくいきませんでした.ファイルはインデックスによる接続に対してブロブを格納するため、個々のアイテムを削除するとそれらのインデックスが失われる可能性があります. しかし、多くの接続が定義されていて、それらを再作成する必要がない場合は、私よりも運が良かった場合に備えて、これを試してみる価値があるでしょう。それ以外の場合は、DefaultView.SEView ファイルを削除してください。

Visual Studio を再起動して完了です。これで、その悪いエラーから解放されます。

于 2012-08-02T11:59:15.117 に答える