【发布时间】:2008-10-14 16:44:29
【问题描述】:
我们有一个 DLL 用作我们网站前端和后端票务系统之间的中间层。插入票务系统的方法解释起来有点复杂,但简短的版本是它很慢。我得到的最佳案例是 9 秒的提交时间。
但真正的问题是,我只能通过 Windows 应用程序而不是通过 ASP.NET 网站来获得那个时间。我已经设置了一个 Windows 测试应用程序和一个用于测试的网页,即使在它们之间复制代码,网页也始终在 17-20 秒内提交,而 Windows 应用程序则需要 8-11 秒。
可能是什么原因造成的?
编辑:针对几个答案...
对 Web 服务的调用占用了大部分时间,但我无法控制此 Web 服务,因为它是由票务系统供应商提供的。我需要找出为什么当从不同类型的应用程序调用 Web 服务时,它会花费不同的时间。两种情况下的代码完全相同,它运行一个循环然后报告记录的时间。
代码是:
for (int i = 0; i < numIterations; i++)
{
startTimes[i] = DateTime.Now;
try
{
cvNum = Clearview.Submit(req, DateTime.Now, DateTime.Now, false);
}
catch (Exception ex)
{
exceptionCount++;
lblResult.Text += @"<br />Exception Caught: " + ex.Message + @"<br />";
}
endTimes[i] = DateTime.Now;
}
在这两种情况下都是相同的循环,我在调用库之前和之后标记时间,它会进行进一步处理,然后调用 Web 服务。但是那个处理应该是一致的,不是吗?我在调试过程中进行了跟踪,没有看到任何延迟到实际的 Web 服务调用...
再次编辑:使用 Ants,在这两种情况下,99.4% 的时间都只是在 Web 服务调用上发送。那里似乎没有区别...除了超时时网页比Windows应用程序花费的时间更长。
【问题讨论】:
-
您将哪些 Windows 和 Web 客户端用于 Web 服务?
-
您使用的是 HttpWebRequest、生成的 Reference.cs、JavaScript 客户端 Web 客户端还是什么?
-
在两个不同的 Web 服务后端之间进行测试:在一种情况下生成 Reference.CS,在另一种情况下生成 WebClient。该引用在 Windows 应用程序和网页都使用的 .DLL 中生成。
标签: asp.net web-services