0

当我们将 MVC beta 升级到 MVC RC1 时,Visual Studio 的开发网络服务器在应用程序的某个时刻突然崩溃了。经过一番搜索,我将错误缩小到这个简单的行:

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

SomeString 在那一刻出现在 viewData 中,所以 if 语句应该返回 false

执行该行时,网络服务器崩溃,程序中没有异常。我们看到似乎来自方法 ContainsKey 的崩溃。有人遇到过同样的问题吗?我们应该回滚到 MVC beta 的安装吗?

4

4 回答 4

0

我不知道答案,但我可以告诉你如何找到它。我的经验是,当开发 Web 服务器崩溃时,通常是因为您的代码(或者显然是您正在调用的框架中的代码)中的堆栈溢出。您当然可以从 CodePlex 获取 MVC 源代码。您应该下载它,并将其添加到您的解决方案中。追踪到 ContainsKey。如果需要,使用 Visual Studio 选项跟踪到 .NET 框架源代码。在某些时候,您应该弄清楚代码为什么会反转。

于 2009-02-09T14:21:58.270 回答
0

如果没有看到您的错误,我无法给您明确的答案,但我猜这是因为 ViewData.Model 变成了 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

于 2009-02-09T18:52:09.557 回答
0

您在 Windows 的事件管理器中看到什么异常?那里有一些有用的信息,我认为应用程序名称是 Casini

于 2009-02-09T18:56:02.840 回答
0

我发现了问题。执行 ContainsKey 方法的代码位于外部库中。当我们将开发机器升级到 RC1 时,我们忘记将构建服务器升级到 RC1。所以我们引用的库是参考 mvc beta 构建的。我仍然觉得奇怪的是会发生这些错误,但这就是问题所在。

当我们升级我们的构建服务器时,错误消失了。

于 2009-02-11T08:57:28.433 回答