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+ секунд? И почему мне нужно развернуть исполняемый файл узла вместе с приложением?

Спасибо

0 ответов

Другие вопросы по тегам