2009-07-07 8 views
4

IIS6/Win2003에서 호스팅되는 ASP.NET (3.5) 웹 서비스 응용 프로그램을 개발 중입니다. 웹 서비스는 시작과 반환 직전에 호출의 타임 스탬프를 기록합니다. 이를 통해 내가 찍은 시간을 질의 할 수 있습니다. 또한 표준 IIS 로그 (W3C 확장)에 시간을 추가했습니다.IIS와 ASP.NET의 시간 차이점

웹 서비스가 스트레스 테스트되었습니다 (5 스레드, 스레드 당 200 호출). datase, 나는 큰 차이를 참조하십시오! 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; 
} 

답변

4

인터넷 시간을 포함하는 IIS 시간을 알았습니다. (see microsoft) 이것은 IIS6 이후로 관심있는 사람들을위한 것입니다. 네트워크 소년들에게 돌아 가라!

6

귀하의 페이지 요청이 IIS에 제공합니다 (IIS 타이머를 시작합니다). 코드의 .NET 부분 만 .NET Framework (.NET 타이머 시작)로 전달됩니다. .net 프레임 워크는 논리를 처리하고 결과를 IIS로 리턴합니다 (.net 타이머를 중지하십시오). 그런 다음 IIS는 요청 처리를 끝내고 HTTP 응답을 다시 브라우저로 보냅니다 (IIS 타이머 중지).

IIS는 인증, MIME 형식 처리, .NET 프레임 워크 (HTML, 이미지, 플래시 등)로 구문 분석되지 않은 콘텐츠 처리 등의 추가 작업을 수행하고 있습니다.

개인적으로이 두 값이 일치하지 않을 것으로 예상됩니다.

+0

나는이 추론에 전혀 동의하지 않는다. 추론은 정확하지만 작은 차이 만 설명 할 뿐이지 만 질문에 언급 된 숫자는 차수의 차수입니다. 또한 HTML/이미지/플래시 파일 처리는이 질문과 관련이 없으며 이러한 벤치 마크에도 영향을 줄 수 없습니다. – Iravanchi

+0

"나는이 추론에 전혀 동의하지 않는다. 추론이 맞지만 ..."... 음 ... 허? –

1

IIS 큐에 요청이있는 경우 IIS 시간에도 시간이 포함되어 있다고 생각합니다. 작업자 프로세스에 손이 가득차면 요청이 대기열에 있으며 시간이 시작됩니다.

여기서 ASP.NEt 시간은 IIS에서 ASP.NET 응용 프로그램으로 전달할 때만 시작됩니다. ASP.Net 응용 프로그램이 다른 webservice 또는 다른 느린 프로세스를 사용하는 경우이 차이점이있을 수 있습니다.

관련 문제