2012-11-18 97 views
1

我正在研究一个ASP.NET MVC网站,并且存在一个随机发生的问题(并且仅在一个服务器上它似乎),从而用户浏览到包含几个文本字段和提交按钮的编辑页面,更改其中一个字段中的某些有效数据并单击提交按钮,但有时代替保存数据并将用户返回到查看详细信息页面(按照它应该),编辑页面将再次显示,并且只有在单击再次提交按钮几次。什么原因会导致数据随机不被保存?

鉴于输入到文本框中的数据是有效的,并且鉴于此问题无法在其他服务器或网站的本地开发副本上重现,因此可能存在什么原因?它可能与服务器上的资源有关吗?

你将如何去调查这个,以找出是什么原因造成的?

注意;调试代码是不可能的,因为它在另一台服务器上。我可以使用相同的数据库,但问题仍然无法复制。

+0

..当然你有所有适当的日志记录基础设施来调试这个..是吗?首先检查服务器上的事件日志。监视应用程序池并查看它是否崩溃.. –

+0

感谢您的建议。发生此问题时,我会查看事件日志。你是指什么其他类型的日志记录? (除了事件日志和检查应用程序池) – Theomax

+0

通常,我们有不同的日志记录级别,可以从测试 - >分段 - >活动服务器打开和关闭。例如,'DEBUG'级别的日志几乎记录了所有事情。而“致命”只会记录非常非常糟糕的东西。 'DEBUG'在测试中启用..在我们的临时服务器上稍有限制,并且仅在实时服务器上启用了'FATAL'。如果由于某种原因,其中一台活着的服务器出于未知原因失败。我们将其弹出到正在服务器上的“DEBUG”15分钟,然后将其关闭。然后检查日志,看看它的全部失败。 –

回答

1

以下是具体步骤,我建议:

  1. 在相应的控制器设置断点,就在逻辑上,看到正在传递什么给控制器。然后,按照下面的逻辑看看它被踢出去的地方。
  2. 打开浏览器调试器并查看网络流量。确切地看到你发送给你的控制器。这可能会说明失败更新的原因。
+0

您的第二点是有益的感谢您的建议。正如我在问题中所说的,我无法调试代码,因为它在另一台计算机上。 – Theomax

+0

啊,错过了那部分。是的,Chrome中的网络面板是我最常用的调试工具(旁边的控制台:P)。我的猜测是一些值没有正确序列化,并且因为模型无效而被拒绝,将用户返回到编辑屏幕(非常默认行为)。希望你能把它全部整理出来! – TNCodeMonkey

相关问题