web-dev-qa-db-ja.com

WCFサービスコード(MSVS 2013)をデバッグしようとすると、「ウォッチの追加」関数で「式エバリュエーターの内部エラー」を取得する

数日前、ソリューションをMSVS 2013に移行しました。1つだけ問題なく動作します。WCFサービスのコードをデバッグしようとすると動作しますが、変数の状態を監視したいときは、「式の内部エラー評価者」。ウォッチ機能の追加はクライアント側では正常に機能しますが、サービスコードでは機能しません。ローカルホストで実行されている自分のWCFサービスをデバッグしようとしています。これを修復する方法を教えてください。

enter image description here

MSVS情報:Microsoft Visual Studio Professional 2013バージョン12.0.30110.00 Update 1 Microsoft .NET Frameworkバージョン4.5.51641 OS:Windows 8.1

114
Ceridan

これは、Visual Studio 2013に同梱されている新しい(マネージド)デバッグエンジンのバグの可能性があります。マネージド互換モードを有効にしてみてください(効果的にの下にある2013年以前のデバッグエンジン)ツール-オプション-デバッグ

これで問題が解決する場合は、小さなプロジェクトでそれを再現し、 Connect でレポートすることをお勧めします。これで修正できます。

@ bjhuffine以下のコメントでは、互換モードをグローバルに無効にせずに他の方法で有効にする方法があります(プロジェクトごとなど)。詳細はこちら: http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013.aspx

228
Igal Tabachnik

質問によると 「式エバリュエーターの内部エラー」 「管理互換モードを使用」は「編集と続行」を停止します。 Tools-Options-Debuggingの下の「レガシーC#とVB expression evaluatorsを使用する」オプションをチェックしてみてください。

13

Igalの答え を試してみましたが、うまくいきませんでしたが、うまくいく解決策を見つけました。ウォッチをクリアし、アイテムを再度追加し始めました。現在のサブまたは関数内にないアイテムを追加しようとすると、内部エラーが発生することに気付きました。

サブルーチンまたは関数内から他のアイテムを追加することで問題を解決しましたが、再びエラーはありませんでした。

2
KomArko

Michael Freidgeimの回答は、問題のデバッグに役立ちました。しかし、問題の原因にさらに詳細を追加したいと思います。質問者の質問に少しだけ関連しているが、彼のエラーは非常に誤解を招く。

GridDateTimeColumnのあるTelerikコントロールRadGridを使用していました。これらのグリッドのMinDateプロパティはデフォルトで1980年1月1日に設定されているため、この列に日付よりも小さい日付をバインドすると、このエラーが表示されます。奇妙なことは、元のバインディングと表示が問題を引き起こさなかったということです。エラーがスローされたのは別のページに移動したときだけでした。

0
ascriven