내 요청이 완료되는 데 2 분 이상 걸릴 때마다 정확한 메시지를 받았습니다. 브라우저는 요청에서 연결을 끊지 만 백엔드의 요청은 완료 될 때까지 계속되었습니다. 서버 (제 경우에는 ASP.NET Web API)가 연결 해제를 감지하지 못합니다.
하루 종일 검색 한 후 마침내이 답변을 찾았 습니다. 프록시 구성 을 사용하면 기본 시간 제한이 120 초 (또는 2 분) 임을 설명합니다 .
따라서 프록시 구성을 편집하고 필요한대로 설정할 수 있습니다.
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 6000000
}
}
이제는 agentkeepalive를 사용하여 NTLM 인증과 함께 작동 하도록했으며 에이전트의 시간 초과가 프록시의 시간 초과와 관련이 없다는 것을 몰랐으므로 둘 다 설정해야합니다. 그것을 깨닫는 데 시간이 오래 걸렸으므로 여기에 예가 있습니다.
const Agent = require('agentkeepalive');
module.exports = {
'/api/': {
target: 'http://localhost:3000',
secure: false,
timeout: 6000000, // <-- this is needed as well
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000, // <-- this is for the agentkeepalive
freeSocketTimeout: 90000
}),
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] &&
proxyRes.headers[key].split(',');
}
}
};
err
뿐만 아니라 - 개체message