0

MVCベータ版をMVCRC1にアップグレードしたとき、VisualStudioがアプリケーションのある時点で突然クラッシュした開発Webサーバー。いくつか検索した後、バグを次の単純な行に絞り込みました。

if (!helper.ViewData.ContainsKey("SomeString"))

SomeStringはその時点でviewDataに存在するため、ifステートメントはfalseを返す必要があります

その行が実行されると、Webサーバーがクラッシュし、プログラムに例外はありません。メソッドContainsKeyに起因すると思われるクラッシュが発生します。誰かが同じ問題を経験しましたか?インサレーションをMVCベータにロールバックする必要がありますか?

4

4 に答える 4

0

私は問題を見つけました。containsKeyメソッドを実行するコードは外部ライブラリにありました。開発マシンをRC1にアップグレードしたときに、ビルドサーバーをRC1にアップグレードするのを忘れたため、参照したライブラリはmvcベータを参照してビルドされました。私はまだそれらのエラーが発生する可能性があるのは奇妙だと思いますが、それが問題でした。

ビルドサーバーをアップグレードすると、エラーはなくなりました。

于 2009-02-11T08:57:28.433 に答える
0

答えはわかりませんが、見つけ方を教えてください。私の経験では、開発用 Web サーバーがクラッシュする場合、通常はコード (または、明らかに、呼び出しているフレームワーク内のコード) のスタック オーバーフローが原因です。もちろん、MVC ソース コードは CodePlex から入手できます。これをダウンロードして、ソリューションに追加する必要があります。ContainsKey にトレースします。必要に応じて、Visual Studio オプションを使用して、.NET フレームワークのソース コードをトレースします。ある時点で、コードが反転している理由を理解する必要があります。

于 2009-02-09T14:21:58.270 に答える