2011-10-24 2 views
3

나는 HttpRequests를 많이 사용하는 Asp.Net에서 다중 스레드 응용 프로그램을 작성했으며 때로는 많은 스레드가 동시에 HTTP 요청을 수행하는 경우 평소보다 많은 오류가 발생합니다 .I 유료 호스트에서이 응용 프로그램을 호스팅 할 때 연결 수에 대한 기본 제한이 있는지 궁금 해서요. 한계가 있는지, 제한 때문에 요청을 보내려고 시도하는 다른 스레드가 있는지 궁금합니다. 초과되었거나 connction을 처리하는 내부 시스템이 있습니다. 연결이 가능할 때까지 연결을 해제합니다.IIS7의 최대 동시 HttpRequests

미리 감사드립니다.

+0

아마도 클라이언트 측에서 대기중인 HTTP 요청을 재검토하거나 제한된 병렬 요청을해야합니까? –

답변

0

AFAIK, HTTP 1.1 서버는 1.0 서버가 4 개의 연결로 제한되는 2 개의 연결로 제한됩니다. 따라서 asp.net 응용 프로그램에서 보내는 HTTP/1.1/1.0 서버에 대한 처리 대기중인/프로세스 요청 수를 확인할 수 있습니다.

이것은 선언적으로 ServicePointManager.DefaultConnectionLimit = 5; (예 : 5 개의 미해결 연결)

또한 유료 호스트라고 언급했습니다. 이 경우 공급자와의 요청 제한 (있는 경우)을 확인하는 것이 좋습니다.

+0

DefaultConnectionLimit을 변경하려고했지만 어떤 종류의 보호 agianst changing.I 내 호스트와 한계가 무엇인지 확인합니다하지만 당신은 그것을 호출하고 제한이 이미 가득 찼습니다 conection 어떻게됩니까? 연결 슬롯이 열릴 때까지 보류 중입니까? – formatc

+0

"서버가 제한되어"있다는 것을 어떻게 표현합니까? 저는 다른 많은 사람들과 공유 서버에 있습니다. 그래서 2-4 개의 연결을 동시에 사용하면 다른 사람이 사용할 수 없습니까? 설명해주세요. – formatc

1

당신은 또한 웹 요청을 제한 시간을 확인해야 Web.config의

<configuration> 
    <system.net> 
    <connectionManagement> 
     <add address="*" maxconnection="80"/> 
    </connectionManagement> 
    </system.net> 
</configuration> 

의 주소로 DefaultConnectionLimit을 구성 할 수 있습니다. 생성 된 예외는 무엇입니까?

+0

많은 요청을하고 있습니다. 사이트가 만료되거나, unavailble, timeout 등과 같이 많은 오류가있을 수 있습니다. 이것은 허용 가능합니다. 연결 제한에 의해 오류가 생성되지 않았는지 확인하려고합니다. Im은 HttpRequest 클래스가 소켓을 사용하는지 확실하지 않지만 다음과 같은 메시지와 함께 예외를 가져야합니다. "시스템에 충분한 버퍼 공간이 없거나 큐가 가득 찼기 때문에 소켓 작업을 수행 할 수 없습니다." 최대 병렬 연결이 한계에 도달했을 때, 맞습니까? – formatc