ASP.NET Webservice - 跟踪在远程调用时减慢进程

时间:2013-09-23 15:38:14

标签: c# asp.net web-services

我们有一个直到最近才运行良好的网络服务。

在本地调用时,一切正常,但远程调用时需要30秒才能获得响应。不仅适用于webmethod调用,还适用于对asmx或wsdl的简单调用。

跟踪显示GetHandler返回与ProcessRequest调用之间的差距。 您是否对此时可能导致问题的任何想法(仅限远程呼叫)?

以下是服务日志的摘录,显示了从浏览器访问.asmx时的时间差:

System.Web.Services.Asmx Information: 0 : Return from IHttpHandlerFactory.GetHandler
Caller: System.Web.Services.Protocols.WebServiceHandlerFactory#23522948::GetHandler()
ProcessId=6420
LogicalOperationStack=
ThreadId=7
DateTime=2013-09-23T14:35:36.3381748Z
Timestamp=3850992018156

System.Web.Services.Asmx Information: 0 : Calling IHttpHandler.ProcessRequest
Caller: System.Web.Services.Protocols.SyncSessionlessHandler#41622463::ProcessRequest()
Request Host Address: **.**.**.**
Request Host Name: ***
Request Url: [GET] http://***/***.asmx
ProcessId=6420
LogicalOperationStack=
ThreadId=7
DateTime=2013-09-23T14:35:48.3970521Z
Timestamp=3851164660296

System.Web.Services.Asmx Information: 0 : Calling Void Documentation()
Method: System.Web.Services.Protocols.DocumentationServerProtocol#31364015::Documentation()
Caller: System.Web.Services.Protocols.SyncSessionlessHandler#41622463::Invoke()
ProcessId=6420
LogicalOperationStack=
ThreadId=7
DateTime=2013-09-23T14:35:48.3970521Z
Timestamp=3851164663918

谢谢

修改

在将网络服务与另一个网络服务进行比较后,我终于找到了问题的根源:这是跟踪本身。一旦被禁用,evrything可以远程工作。

我知道跟踪需要花费时间,但30秒似乎很多,为什么只需要更多时间用于远程呼叫? 正如注释中所解释的那样,没有设置身份验证,并且池用户具有足够的权限,因为实际写入了跟踪。有什么想法吗?

这是跟踪设置

<system.diagnostics>
   <trace autoflush="true" />
       <sources>
           <source name="System.Web.Services.Asmx">
               <listeners>
                   <add name="AsmxTraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\local.log" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId" />
               </listeners>
            </source>
        </sources>
    <switches>
        <add name="System.Web.Services.Asmx" value="Verbose" />
    </switches>
</system.diagnostics>

0 个答案:

没有答案