【发布时间】:2015-08-28 15:16:00
【问题描述】:
我有一个如下相似的表格...
@using (Html.BeginForm())
{
@* Model elements go here *@
<input type="submit" value="Save" />
}
以及此视图的以下方法,我们将称之为“测试”
public ActionResult Test()
{
return View();
}
[HttpPost]
public ActionResult Test(ModelObj m)
{
try{
//do save logic with ModelObj entity
}
catch(Exception ex){
//Log error - send e-mail to self and display 'save failed' msg to front end user
}
return View(m);
}
此代码在加载页面并立即运行时按预期运行,但其他用户(我自己无法重新创建问题)抱怨等待时间较长(让页面闲置超过 10 分钟),在“保存' 点击,页面进行回发(页面闪烁并重新加载)但数据尚未保存。
我在 try/catch 中添加了错误日志以尝试找出问题,但没有收到任何错误电子邮件,并且用户没有看到 catch 块提供的前端“保存失败”消息。
我只能想象这是一个会话问题 - 但我已经在此页面上消除了我自己对 Session 变量的所有使用,并且想知道 MVC 是否有它自己的 View 超时期限(它只是扔掉所有型号信息)。如果是这样,有没有办法增加这个?我应该寻找其他任何可能性吗?
【问题讨论】:
-
IIS 不控制这个吗?
-
看起来默认是 110 秒:stackoverflow.com/questions/579523/… 无论如何,我认为这不是您的问题,我认为您的逻辑可能对不同的用户表现不同。也许还有验证问题?
-
我不确定这是一个会话问题,但不管它是什么应该有一个错误,所以我建议花一点时间来发现这个错误。看看here。本文展示了如何为 Web API 执行此操作,但也适用于 MVC。
-
@Marko 我还认为这可能是一个验证问题(因为它使用了我自己没有设计的数据库)。我在 try catch 周围添加了验证和 Model.IsValid 但最终也没有捕获到任何东西。
标签: asp.net-mvc session-timeout