Binding.ReceiveTimeout 속성

정의

연결이 끊어지기 전에 애플리케이션 메시지가 수신되지 않는 비활성 상태로 유지될 수 있는 시간 간격을 가져오거나 설정합니다.

public:
 property TimeSpan ReceiveTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan ReceiveTimeout { get; set; }
member this.ReceiveTimeout : TimeSpan with get, set
Public Property ReceiveTimeout As TimeSpan

속성 값

TimeSpan

제한 시간이 초과되기 전에 애플리케이션에서 메시지를 수신해야 하는 시간을 지정하는 TimeSpan입니다. 기본값은 10 분입니다.

예외

값이 0보다 작거나 너무 큰 경우

설명

신뢰할 수 있는 세션을 사용하는 경우 연결을 활성 상태로 유지하기 위해 충족해야 하는 두 가지 비활성 타이머가 있습니다. 이러한 비활성 타이머 중 하나가 꺼지면 연결이 삭제됩니다.

  • 첫 번째 비활성 타이머는 신뢰할 수 있는 세션에 있으며 InactivityTimeout. 이 비활성 타이머는 시간 제한 동안 애플리케이션 또는 인프라 메시지가 수신되지 않으면 발생합니다. 인프라 메시지는 애플리케이션 데이터를 포함하는 메시지가 아니라 상태 유지 또는 승인과 같이 채널 스택의 프로토콜 중 하나에서 사용하도록 생성되는 메시지입니다.

  • 두 번째 비활성 타이머는 서비스에 있으며 바인딩 설정을 ReceiveTimeout 사용합니다. 이 비활성 타이머는 시간 제한 동안 애플리케이션 메시지가 수신되지 않으면 발생합니다. 예를 들어 서버가 세션에서 사용하는 채널을 닫기 전에 클라이언트가 서버에 메시지를 하나 이상 보내는 데 걸리는 최대 시간을 지정합니다. 이 동작은 클라이언트가 임의로 오랫동안 서버 리소스를 유지할 수 없도록 합니다.

비활성 타이머가 발생하면 연결이 끊어지기 때문에 더 ReceiveTimeout 크면 증가 InactivityTimeout 해도 아무 효과가 없습니다. 이 두 시간 제한의 기본값은 10분이므로 신뢰할 수 있는 세션을 사용할 때 차이를 만들기 위해 항상 두 시간 제한을 늘려야 합니다.

바인딩 또는 채널에서 트랜잭션 흐름을 사용하는 경우 지정된 시간 제한보다 작업을 실행하는 데 시간이 더 오래 걸릴 수 있습니다. 이러한 경우 만료된 시간 제한으로 인해 작업이 실패하고 트랜잭션이 적절하게 중단됩니다.

세션 ReceiveTimeout 과 함께 보안을 사용하는 경우 바인딩에 설정된 값도 세션 시간 제한으로 사용됩니다.

적용 대상