当升级到MVC测试版到RC1时,应用程序突然崩溃,应该不会崩溃
当我们将MVC beta升级到MVC RC1时,Visual Studio的开发Web服务器在应用程序的某个点突然崩溃。经过一番搜索我缩小了臭虫这个简单的一行:当升级到MVC测试版到RC1时,应用程序突然崩溃,应该不会崩溃
if (!helper.ViewData.ContainsKey("SomeString"))
SomeString是目前在ViewData的那一刻,所以当该行执行的Web服务器崩溃,如果语句应返回false
,没有exeption在节目中。我们看到似乎来自方法ContainsKey的崩溃。有人遇到同样的问题吗?我们应该将我们的安全性回滚到MVC测试版吗?
我发现了这个问题。执行ContainsKey方法的代码位于外部库中。当我们将开发机器升级到RC1时,我们忘了将我们的构建服务器升级到RC1。因此,我们引用的库是通过引用mvc beta构建的。我仍然感到奇怪的是,这些错误可能会发生,但这是问题所在。
当我们升级我们的构建服务器时,错误消失了。
我不知道答案,但我可以告诉你如何找到它。我的经验是,当开发Web服务器崩溃时,通常是因为代码中的堆栈溢出(或者显然,您正在调用的框架中的代码)。您当然可以从CodePlex获取MVC源代码。您应该下载并将其添加到您的解决方案中。跟踪到ContainsKey。如果需要,使用Visual Studio选项追踪.NET框架源代码。在某个时候,你应该弄清代码为什么会逆转。
我不能给你明确的答案没有看到你的错误,但我猜这是因为ViewData.Model成为模型。
参见:http://blog.benhall.me.uk/2009/01/aspnet-mvc-rc1-viewdatamodel-becomes.html或http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx
你在Windows的事件管理器中看到什么异常?有一些可用的信息,我认为应用程序名称是Casini
支持ViewData.Model和Model。 – 2009-02-10 13:50:02