1
웹 API 자체 호스트에 있습니다. 각 요청마다 연결 유지 : 닫기 헤더를 보내야합니다. 매번 새로운 연결을 원합니다. 이 글로벌 구성은 어떻게 설정합니까?웹 API 연결 유지 헤더
웹 API 자체 호스트에 있습니다. 각 요청마다 연결 유지 : 닫기 헤더를 보내야합니다. 매번 새로운 연결을 원합니다. 이 글로벌 구성은 어떻게 설정합니까?웹 API 연결 유지 헤더
HttpMessageHandler를 사용하여 모든 요청/응답을 전역 적으로 변경할 수 있습니다. 찾고있는 헤더는 Connection
헤더입니다. 이 헤더는 어떤 이유로 든 조금 다르게 노출되었습니다. Connection
헤더를 직접 설정할 수 없으므로 ConnectionClose
속성을 true
으로 설정해야합니다.
config.MessageHandlers.Add(new CloseConnectionHandler());
나는이 작업을 수행 할 것입니다 이유에 호기심,
public class CloseConnectionHeader : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
return base.SendAsync(request, cancellationToken).ContinueWith(t =>
{
var response = t.Result;
response.Headers.ConnectionClose = true;
return response;
});
}
}
을하고에 messageHandler 컬렉션에 추가
이 같은 클래스를 만듭니다. 내가 상상할 수있는 유일한 이유는 짧은 시간 내에 각각 하나의 요청을하는 수천 명의 동시 클라이언트를 기다리고 있다는 것입니다. 그럴까요? 그렇지 않은 경우 상당한 성능 저하가 발생할 수 있습니다. Http.sys 스택은 2 분 동안 사용하지 않으면 자동으로 연결을 닫습니다. 따라서 연결이 누출되는 것과는 다릅니다.
WebGL을 통한 3D 렌더링을위한 Javascript 라이브러리 인 X3DOM을 사용하고 있습니다. 일부 요청을 한 후에 div의 새로운 X3D 컨텐트 (CAD 모델)를 인라인하면 메모리 누수 (알려진 문제)가 발생하고 순수 전송이 저하 될 수 있습니다. 이 마지막 문제를 완화하여 새로운 연결을 열어보고자합니다. – Jumpa