1

我是一名初级 Asp.net 开发人员,并得到了一项有趣的任务。我正在托管一个 Web 服务。当客户端调用将一些数据保存到我们的数据库的方法时,有时需要很长时间才能成功。通常~5 sec有时30+sec。我真的不知道从哪里开始。

在我看来,这可能是由以下原因引起的2 reasons

  1. 客户的互联网连接不良。
  2. 我的数据库超载

但是我怎样才能证明这一点或找到真正的原因呢?

4

4 回答 4

0

运行 WCF 跟踪和数据库跟踪。在它们两者之间,您应该能够找出是其中一个还是另一个。

于 2013-02-07T07:28:28.107 回答
0

尝试在 SQL端进行分析以检查查询执行情况。您还可以在服务器上使用wireshark来查看收到的请求以及一段时间内发生的情况。检查服务的代码是否有循环(如果该参数不是预期的值,则可能存在一些检查某些参数的递归检查 - 冻结并再次检查)。

于 2013-02-07T07:32:51.133 回答
0

一种选择是在客户端访问 Web 服务代码时对其进行调试。

如果需要很长时间才能达到调试点,那么客户端就有问题。

如果它快速完成调试,则单步执行代码并查看哪个步骤需要很长时间。

于 2013-02-07T07:43:15.600 回答
0

当谈到在高于 2003 的 Windows 服务器中部署和托管时,可以安装 AppFabric,它具有在 IIS 上监视和排除 Web 服务和 Web 应用程序的强大功能。

监控可以通过 IIS 管理中的 UI 和 web.config 进行配置。并且比默认的 IIS 跟踪功能更好。

如何实现它以及我的意思在这里更好地描述:

http://msdn.microsoft.com/en-us/library/ee677277.aspx

当数据库因读取操作而特别过载时,还可以使用 AppFabric 分布式缓存。

首先检查您的请求执行了多长时间。然后决定配置文件或不数据库。尝试以这种方式设计您的架构,以避免在保存后阻塞,可能是异步响应,或者客户端在保存完成时并不总是应该等待。客户稍后可以询问保存状态,您不会阻止他。无论如何,要了解有关架构或所需要求的准确、更多详细信息。

于 2013-02-07T09:12:40.343 回答