我是一名初级 Asp.net 开发人员,并得到了一项有趣的任务。我正在托管一个 Web 服务。当客户端调用将一些数据保存到我们的数据库的方法时,有时需要很长时间才能成功。通常~5 sec有时30+sec。我真的不知道从哪里开始。
在我看来,这可能是由以下原因引起的2 reasons
:
- 客户的互联网连接不良。
- 我的数据库超载
但是我怎样才能证明这一点或找到真正的原因呢?
我是一名初级 Asp.net 开发人员,并得到了一项有趣的任务。我正在托管一个 Web 服务。当客户端调用将一些数据保存到我们的数据库的方法时,有时需要很长时间才能成功。通常~5 sec有时30+sec。我真的不知道从哪里开始。
在我看来,这可能是由以下原因引起的2 reasons
:
但是我怎样才能证明这一点或找到真正的原因呢?
运行 WCF 跟踪和数据库跟踪。在它们两者之间,您应该能够找出是其中一个还是另一个。
一种选择是在客户端访问 Web 服务代码时对其进行调试。
如果需要很长时间才能达到调试点,那么客户端就有问题。
如果它快速完成调试,则单步执行代码并查看哪个步骤需要很长时间。
当谈到在高于 2003 的 Windows 服务器中部署和托管时,可以安装 AppFabric,它具有在 IIS 上监视和排除 Web 服务和 Web 应用程序的强大功能。
监控可以通过 IIS 管理中的 UI 和 web.config 进行配置。并且比默认的 IIS 跟踪功能更好。
如何实现它以及我的意思在这里更好地描述:
http://msdn.microsoft.com/en-us/library/ee677277.aspx
当数据库因读取操作而特别过载时,还可以使用 AppFabric 分布式缓存。
首先检查您的请求执行了多长时间。然后决定配置文件或不数据库。尝试以这种方式设计您的架构,以避免在保存后阻塞,可能是异步响应,或者客户端在保存完成时并不总是应该等待。客户稍后可以询问保存状态,您不会阻止他。无论如何,要了解有关架构或所需要求的准确、更多详细信息。