填写一个非常大的表单时Asp.Net MVC奇怪的错误

时间:2012-09-06 14:04:01

标签: asp.net asp.net-mvc

在一个新网站上,我有一个巨大的公式(意思是真的很大,需要至少15-20分钟来完成它),为明年的一个客户配置整个网站。

它分布在几个标签之间(它是一个向导)。每次我们转到下一个选项卡时,它会对服务器进行常规(非ajax)调用,生成下一个“页面”。以前的信息存储在会话中(具有自定义绑定器的对象)。

一切正常,直到我们今天用所有真实数据进行测试。真实数据需要反思,努力寻找正确的元素,......这需要时间。

我们遇到的问题是View收到的模型部分为空。会话持续时间设置为1440分钟(在IIS中也是如此)。现在我所知道的是,当我第一次尝试将模型访问到我的视图中时,我得到了NullException。

我正在检查控制器,因为类似1小时,但它只是不可能它给出一个空模型。如果我把所有这些数据都非常快,我没有任何问题(但它是随机数据)。

现在我只设法在IIS服务器上重现这个问题,我正在检查elmah日志来调试它,所以重现它并不容易。

您对我应该如何调试这个有任何想法吗?我有点迷失在这里

3 个答案:

答案 0 :(得分:0)

我认为您应该假设会话不提供可靠的持久性。我不确定细节,但我猜它会在超出内存限制时开始释放一些元素。

如果您使用数据库来存储该信息,或者您可以为持久状态引入您自己的实现,那么您将更安全。

答案 1 :(得分:0)

除了由@Ufuk提供的ans 您可以轻松地每1分钟发送一次ajax请求,这实际上什么都不做,但这样做session不会过期,网站会继续长时间运行

答案 2 :(得分:0)

问题是我认为会议没有足够的空间。我通过重新启动应用程序池解决了我的问题。仍在搜索不会暗示更改所有此代码的解决方案。也许与其他会话状态模式,但我需要使我的模型可序列化。