我是Asp.net的初级开发人员并且完成了一项有趣的任务。我正在托管一个Web服务。当客户端调用将某些数据保存到数据库的方法时,有时需要很长时间才能成功。通常 ~5秒有时 30 + sec 。我真的不知道从哪里开始。
对我来说,似乎可能是2 reasons
:
但我怎样才能证明或找到真正的原因?
答案 0 :(得分:0)
运行WCF跟踪和数据库跟踪。在他们两个之间你应该能够发现它是否是一个。
答案 1 :(得分:0)
尝试profiling on SQL方检查查询执行情况。此外,您可以在服务器上使用wireshark来查看要发送的请求以及在一段时间内对它们产生什么影响。检查服务的代码是否有循环(可能有一些递归检查检查某些参数,如果该参数不是预期的值 - 冻结并再次检查)。
答案 2 :(得分:0)
一种选择是在客户端点击它时调试Web服务代码。
如果需要很长时间才能达到调试点,那么客户端就会出现问题。
如果它快速点击调试,那么单步执行代码,看看哪个步骤需要很长时间。
答案 3 :(得分:0)
当谈到在2003年以后部署和托管Windows服务器时,可以安装AppFabric,它具有监控和排除IIS上的Web服务和Web应用程序的强大功能。
可以通过IIS管理中的UI以及web.config配置监控。并且比默认的IIS跟踪功能更好。
如何实现它和我的意思在这里有更好的描述:
http://msdn.microsoft.com/en-us/library/ee677277.aspx
当数据库特别重载读取操作时,还可以使用AppFabric分布式缓存。
首先检查您的请求执行了多长时间。然后决定配置文件或不数据库。尝试以这种方式设计您的体系结构以避免在保存后阻塞,可能是异步响应,或者客户端在保存完成时并不总是等待。客户可以稍后询问保存状态,您将不会阻止他。无论如何,要了解有关架构或所需要求的更准确,更详细的信息。