ASP.NET Core 2.0 Angular 4 универсальное приложение в производстве - очень медленный ответ
Я опубликовал свое предварительно отрендеренное веб-приложение Angular 4 (ASP.Net Core 2.0, aspnet-prerendering, aspnet-webpack, VS2017), развернул его на веб-сервере IIS 8. Развернутый пакет - это предварительно скомпилированный, предварительно отрендеренный, чистый javascript, в котором нет машинописи.
Работает как положено: быстро загружается с сервера IIS на localhost. Но если я пытаюсь получить к нему доступ через доменное имя (например, mysite.com), удаленно или с другого компьютера в той же локальной сети, где находится веб-сервер, то для получения самого первого ответа от сервера потребуется более 20 секунд. В браузере после "подключения" к серверу приложение загружается так же быстро, как и на localhost. Только удаленный доступ проблематичен.
Примечание 1. В качестве теста я добавил на сайт пустую страницу, которая мгновенно загружается через доменное имя, но когда я перехожу на страницу приложения, она замедляется. Этот последний тест доказывает, что с DNS все в порядке и что это не проблема сети.
Примечание 2. Еще одна странная вещь заключается в том, что для этого требуется, чтобы файл node.exe был скопирован в папку приложения. В противном случае он жалуется на это и не запустится.
Примечание 3: Я включил ведение журнала stdout в web.config, и файл журнала содержит ряд ошибок, подобных этой:
fail: Microsoft.AspNetCore.NodeServices[0]
Response {
_body:
ProgressEvent {
type: 'error',
target:
XMLHttpRequest {
onloadstart: null,
onprogress: null,
onabort: null,
onerror: null,
onload: null,
ontimeout: null,
onloadend: null,
_listeners: [Object],
onreadystatechange: null,
_anonymous: undefined,
readyState: 4,
response: null,
responseText: '',
responseType: '',
responseURL: '',
status: 0,
statusText: '',
timeout: 0,
upload: [XMLHttpRequestUpload],
_method: 'GET',
_url: [Url],
_sync: false,
_headers: [Object],
_loweredHeaders: [Object],
_mimeOverride: null,
_request: null,
_response: null,
_responseParts: null,
_responseHeaders: null,
_aborting: null,
_error: null,
_loadedBytes: 0,
_totalBytes: 0,
_lengthComputable: false },
currentTarget:
XMLHttpRequest {
onloadstart: null,
onprogress: null,
onabort: null,
onerror: null,
onload: null,
ontimeout: null,
onloadend: null,
_listeners: [Object],
onreadystatechange: null,
_anonymous: undefined,
readyState: 4,
response: null,
responseText: '',
responseType: '',
responseURL: '',
status: 0,
statusText: '',
timeout: 0,
upload: [XMLHttpRequestUpload],
_method: 'GET',
_url: [Url],
_sync: false,
_headers: [Object],
_loweredHeaders: [Object],
_mimeOverride: null,
_request: null,
_response: null,
_responseParts: null,
_responseHeaders: null,
_aborting: null,
_error: null,
_loadedBytes: 0,
_totalBytes: 0,
_lengthComputable: false },
lengthComputable: false,
loaded: 0,
total: 0 },
status: 0,
ok: false,
statusText: '',
headers: Headers { _headers: Map {}, _normalizedNames: Map {} },
type: 3,
url: null }
Кто-нибудь знает, что может вызвать задержку 20+ секунд? И почему мне нужно развернуть исполняемый файл узла вместе с приложением?
Спасибо