生产中的ASP.NET Core 2.0 Angular 4通用应用程序

我发布了预渲染的Angular 4 Web应用程序(ASP.Net Core 2.0,aspnet-prerendering,aspnet-webpack,VS2017),并将其部署到IIS 8 Web服务器。 部署的捆绑包是预编译的,预渲染的,纯javascript,没有打字稿。

它按预期工作:从本地主机上的IIS服务器快速加载。 但是,如果我尝试通过域名(例如mysite.com)远程访问它,或从同一局域网中的另一台计算机与Web服务器进行访问,则需要20多秒才能收到来自服务器的第一个响应。 在浏览器中,“连接”到服务器后,应用程序的加载速度与在本地主机上的速度一样快。 只有远程访问是有问题的。

注1:作为一项测试,我在网站上添加了一个空白页面,该页面通过域名立即加载,但是当我导航到应用页面时,页面会变慢。 后面这个测试证明了DNS是可以的,并且它不是网络问题。

注2:另一个奇怪的是,它需要将node.exe复制到应用程序文件夹中。 否则它会抱怨,并且不会启动。

注3:我在web.config中也打开了stdout日志记录,并且日志文件包含一系列如下所示的错误:

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多秒的延迟? 为什么我需要使用应用程序部署节点可执行文件?

谢谢

链接地址: http://www.djcxy.com/p/52541.html

上一篇: ASP.NET Core 2.0 Angular 4 universal app in production

下一篇: How to get localized string from ASP.NET Core Controller using IStringLocalizer?