我只是在使用VB 2010学习ASP.NET,尽管我已经取得了很多进展,但我还是被一个无法解决的问题困扰了。我也在网上寻求答案,但我没有发现任何与我正在处理的内容。 ...虽然我可能没有使用正确的搜索字词。
无论如何,这是一个将在我们公司的互联网网站上运行的应用程序,它要求用户在文本框中输入信息并单击按钮接受它。然后它会显示一个模态弹出窗口,要求用户确认。弹出窗口有一个“确认”按钮和一个“取消”按钮。取消按钮立即起作用(隐藏确认弹出窗口),但确认按钮会挂起几秒钟,然后进入下一步,这是一个模式“谢谢”弹出窗口。 “确认”按钮将数据写入数据库。
现在,这就是它在开发环境中的运作方式。然而,当它在生产服务器上时,它会在它做任何事情之前坐在那里知道多长时间。我可以告诉它正在写入数据库,然后在页面上显示数据,但确认弹出窗口保持不变,并且谢谢你弹出窗口永远不会出现。此外,该应用程序应该作为确认向用户发送电子邮件,但它不会这样做。
当它像这样挂起时,我从来没有等过很长时间才能看到它何时赶上。当它像这样生活时,我不知道如何调试它。
有关该页面的更多信息:有几个更新面板,每秒响应一个计时器滴答,以更新页面上的字段。其他被设置为“有条件的”,由其他事件更新。例如,“确认”和“谢谢”模式位于条件更新面板中,可响应不同的事件。
所以我有两个问题:任何人都可以告诉我有关挂断的信息,有没有办法从实时网站调试?哦,也许是第三个:你有更多的更新面板吗?
更新:跟进问题:它可以在不同的线程上运行,从正确的线程偏离轨道吗?我从来没有真正理解线程,但这似乎是一种可能性。
答案 0 :(得分:0)
这可能是任何数量的东西,所以它可能是你需要潜入和排除故障的东西,它可能不是我们能够提供太多帮助的东西。
首先,强制性要求:请发布您的代码:)
现在,在生产中快速且开发和缓慢工作的东西通常资源问题或代码/数据问题。首先,快速浏览一下服务器,确保它适用于多个用户和所有这些任务。值得一看,但通常是代码或数据的问题。
那个更新命令在做什么?它背后的SQL写得好吗?是否有任何数据库锁可能发生在另一个用户正在做某事的情况下,而您的代码实际上是在等待它完成更新之前完成的?数据库中有多少行/有多少行受影响?
我首先运行SQL跟踪以查看实际发生的情况,并了解每个数据库调用的执行时间。如果那不是答案,请查看VB代码,看看它是否有效写入。如果没有,请返回服务器资源。没有看到任何代码或知道应用程序应该做什么,我敢打赌数据库查询是罪魁祸首。
答案 1 :(得分:0)
我的坏。我没有提到过一个方面,因为我不知道它会是一个因素,但确实如此。该过程的一部分是将某些事件记录到日志文件中。它在我们的IIS中设置的方式,这是一个很大的禁忌。所以这是一个错误,但错误只表现为长时间的延迟。我注释掉了打开,写入和关闭日志文件的代码,这一切都很好。