2011-12-19 57 views
1

因此,我有一个.NET Web服务正在运行,当我在本地调试并在我的机器上运行本地服务时,请求花费大约4秒。但是,当我将项目推送到我的Web服务器时,完全相同的请求现在需要大约1m。我觉得这个请求应该只需要5秒钟。我不确定我的错误。Web Service在响应前似乎超时1分钟

这里是我的小提琴手结果:

服务器性能:

ACTUAL PERFORMANCE 
-------------- 
ClientConnected:   11:21:33.443 
ClientBeginRequest:  11:21:42.412 
ClientDoneRequest:  11:21:42.412 
Gateway Determination: 0ms 
DNS Lookup:     0ms 
TCP/IP Connect:      0ms 
HTTPS Handshake:  0ms 
ServerConnected:   11:21:13.506 
FiddlerBeginRequest:  11:21:42.412 
ServerGotRequest:  11:21:42.412 
ServerBeginResponse:   11:22:47.085 
ServerDoneResponse: 11:22:47.101 
ClientBeginResponse: 11:22:47.101 
ClientDoneResponse:  11:22:47.101 

〜1m05s

局部表现:

ACTUAL PERFORMANCE 
-------------- 
ClientConnected:   11:35:50.111 
ClientBeginRequest:  11:35:59.533 
ClientDoneRequest:  11:35:59.533 
Gateway Determination: 0ms 
DNS Lookup:     0ms 
TCP/IP Connect:      0ms 
HTTPS Handshake:  0ms 
ServerConnected:   11:35:48.845 
FiddlerBeginRequest:  11:35:59.533 
ServerGotRequest:  11:35:59.533 
ServerBeginResponse:   11:36:03.283 
ServerDoneResponse: 11:36:03.298 
ClientBeginResponse: 11:36:03.298 
ClientDoneResponse:  11:36:03.298 

〜4S

这是一个IIS问题? Web服务正在调用ClearQuest API,但是当我直接在Web服务器上运行时,没有发出ClearQuest请求的问题,所以我已经将它列为瓶颈。

真的卡在这里。感谢帮助。

编辑1:我已经查明的重大滞后到这里:

System.Web.Services.Asmx Information: 0 : Return from IHttpHandler.ProcessRequest 
Caller: System.Web.Services.Protocols.SyncSessionlessHandler#19197163::ProcessRequest() 
ProcessId=4740 
LogicalOperationStack= 
ThreadId=5 
DateTime=2011-12-19T21:21:36.2218996Z 
Timestamp=58279486569830475 
System.Web.Services.Asmx Information: 0 : Calling IHttpHandlerFactory.GetHandler 
    Caller: System.Web.Services.Protocols.WebServiceHandlerFactory#50757320::GetHandler() 
    Request Host Address: 192.168.5.15 
    Request Host Name: itdotnet.kns.com 
    Request Url: [POST] http://myurl.com/websvc/CQAccess.asmx 
    ProcessId=5348 
    LogicalOperationStack= 
    ThreadId=6 
    DateTime=2011-12-19T21:22:25.7834480Z 
    Timestamp=58279635279292073 

通知时间戳约为〜49S

+1

尝试做一个性能跟踪这两个应用程序,如果你可以,你会希望找到什么比它应该慢 – 2011-12-19 21:10:20

+0

通过做这样的事情? http://msdn.microsoft.com/en-us/library/bb885203%28v=VS.90%29.aspx 我跑了提琴手,看到这个:ServerGotRequest:11:21:42.412 ServerBeginResponse:11:22: 47.085 不确定这是什么意思。 – 2011-12-19 21:24:03

+0

是的,也可以尝试从jetbrains.com使用DotTrace,如果你可以 – 2011-12-19 21:36:31

回答

0

当我遇到了这样一个问题,这是由于在自动证书吊销期间发生的超时服务器正在执行检查。如果您正在使用一个或多个签名(或自签名)程序集,或者通过SSL与自签名证书或代理服务器或无法访问Internet的服务器绑定服务,则可能会在您的服务器环境中发生这种情况。

此博客单证问题相当好:

http://blogs.msdn.com/b/andreal/archive/2008/07/19/wcf-service-startup-too-slow-have-you-thought-to-crl-check.aspx

对我来说,最好的办法是切换到一个受信任的第三方生产服务器签名证书。在其他环境中,我必须禁用证书吊销,并隐式信任发布者证书和所有服务端点的服务器证书。

如果上面没有导致回答你的问题,那么这篇文章可能会提供一些其他资源来考虑:

http://www.codeproject.com/Tips/114132/WCF-First-Call-Slow