IIS和ASP.NET中的时间差异

edo*_*oft 4 asp.net iis performance logging iis-6

我正在开发一个ASP.NET(3.5)Web服务应用程序,托管在IIS6/Win2003上.Web服务在开始时和返回之前记录调用的时间戳.这允许我查询所花费的时间.我还添加了标准IIS日志(W3C扩展)的时间

然后对web服务进行压力测试(5个线程,每个线程200个调用)当比较从IIS获取的时间与数据中的timetaken时,我看到了巨大的差异!从IIS(也是调用客户端记录的时间)所花费的时间远远高于ASP.NET记录的时间.例如,根据ASP.NET花费的时间是1.7秒,而IIS则记录12000(毫秒)!

这可能是什么原因?

服务的虚拟代码:

[WebMethod(Description = " Main entry point to the service.")]
public string MethodA(string theXmlInput)
{            
    //log first
    StoreInput(theXmlInput);

    //Run the job, should take about 1 sec
    string result = DoIt(theXmlInput);            

    //log output
    StoreResult(result);

    return result;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*per 6

您的页面请求进入IIS(启动IIS计时器).只有代码的.NET部分才能传递给.NET框架(启动.NET计时器)..net框架处理逻辑,并将结果返回给IIS(停止.net计时器).IIS然后完成处理请求并将HTTP响应发送回浏览器(停止IIS计时器).

IIS可能正在完成一大堆额外的工作 - 身份验证,处理MIME类型,处理.NET框架未解析的内容(HTML,图像,flash等).

我个人不希望看到这两个值一致.


edo*_*oft 4

刚刚发现IIS占用的时间包括NETWORK时间。(参见微软) 这是自 IIS6 以来的,对于那些关心的人来说。回到网络男孩!