3

我正在使用yo generator-aspnetcore-spa 一旦我运行我遇到问题的应用程序

处理请求时发生未处理的异常。

NodeInvocationException:节点调用在 60000 毫秒后超时。您可以通过在 NodeServicesOptions 上设置 InvocationTimeoutMilliseconds 属性来更改超时持续时间。

第一个调试步骤是确保您的 Node.js 函数始终调用提供的回调(或同步抛出异常),即使遇到错误也是如此。否则,.NET 代码无法知道它是完成还是失败。Microsoft.AspNetCore.NodeServices.HostingModels.OutOfProcessNodeInstance+d__13.MoveNext()

NodeInvocationException:节点调用在 60000 毫秒后超时。您可以通过在 NodeServicesOptions 上设置 InvocationTimeoutMilliseconds 属性来更改超时持续时间。第一个调试步骤是确保您的 Node.js 函数始终调用提供的回调(或同步抛出异常),即使遇到错误也是如此。否则,.NET 代码无法知道它是完成还是失败。

这条线上的红色

AspNetCore._Views_Home_Index_cshtml+d__31.MoveNext() in Index.cshtml + ViewData["Title"] = "Home Page";

这就是我的 package.json 的样子

{
  "name": "WebApplicationBasic",
  "version": "0.0.0",
  "dependencies": {
    "@angular/animations": "^4.3.0",
    "@angular/common": "^4.3.0",
    "@angular/compiler": "^4.3.0",
    "@angular/core": "^4.3.0",
    "@angular/forms": "^4.3.0",
    "@angular/http": "^4.3.0",
    "@angular/platform-browser": "^4.3.0",
    "@angular/platform-browser-dynamic": "^4.3.0",
    "@angular/platform-server": "^4.3.0",
    "@angular/router": "^4.3.0",
    "@types/node": "^7.0.38",
    "angular2-template-loader": "^0.6.2",
    "aspnet-prerendering": "^2.0.6",
    "aspnet-webpack": "^1.0.29",
    "awesome-typescript-loader": "^3.2.1",
    "bootstrap": "^3.3.7",
    "css": "^2.2.1",
    "css-loader": "^0.28.4",
    "es6-shim": "^0.35.3",
    "event-source-polyfill": "0.0.9",
    "expose-loader": "^0.7.3",
    "extract-text-webpack-plugin": "^2.1.2",
    "file-loader": "^0.11.2",
    "html-loader": "^0.4.5",
    "isomorphic-fetch": "^2.2.1",
    "jquery": "^3.2.1",
    "json-loader": "^0.5.4",
    "ng-snotify": "^2.0.3",
    "ngx-cookie": "^1.0.0",
    "preboot": "^4.5.2",
    "raw-loader": "^0.5.1",
    "reflect-metadata": "^0.1.10",
    "rxjs": "^5.4.2",
    "style-loader": "^0.17.0",
    "to-string-loader": "^1.1.5",
    "typescript": "^2.4.1",
    "url-loader": "^0.5.9",
    "webpack": "^2.7.0",
    "webpack-hot-middleware": "^2.18.2",
    "webpack-merge": "^4.1.0",
    "zone.js": "^0.8.14"
  }
}

我的应用程序运行良好,但我不知道这个问题的原因是什么

4

4 回答 4

6

我们在 Azure 中托管我们的站点,我的解决方案是将此配置键/值添加到应用程序设置中。

键:WEBSITE_NODE_DEFAULT_VERSION
值:6.9.1

我想您也可以将它添加到您的 appsetting.json 或 web.config 中。

于 2018-04-18T15:34:23.567 回答
5

问题出在 aspnet-prerendering 模块中,它在 View>>Home>>Index.csHtml 中看起来像这样

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

然后当我删除它时,应用程序工作正常

<app>Loading...</app>

但是当然没有服务器端渲染,所以当我完成应用程序的开发时,我在项目的根目录中编写了这个命令

webpack --config webpack.config.vendor.js
webpack

并恢复了

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

它可以正常工作:)

于 2017-08-02T20:18:58.407 回答
2

我有同样的问题。这可能是节点本地版本的问题。

我将我的本地 nodejs 版本设置为 5.4.3 并且能够让应用程序运行,尝试在控制台/终端上使用它检查你的节点版本:

node -v

我认为删除预渲染标签然后运行 ​​webpack 可能仍会将该模块从服务器端预渲染中排除,因此希望更新的节点版本可以帮助按预期运行应用程序而无需更改代码。

这里也有类似的问题: NodeInvocationException: Attempt to connect to Node timed out

于 2017-10-07T13:05:14.103 回答
0

不完全是这个问题的答案,但我遇到了同样的问题并来到这里。

我安装了 Windows HPC 包,这意味着我的 PATH 上的 node.exe 是Windows HPC node 命令而不是第三方 NodeJS node.exe

这意味着我在运行 HPC 节点命令而不是使用 NodeJS 运行 webpack 时遇到了超时。为了解决这个问题,我从 PATH 环境变量中删除了路径并重新启动了 Visual Studio。我本可以重新排序路径,或重命名 node.exe 之一,但我不使用命令行中的 HPC 命令,而仅使用代码。

讨论 NodeJS 中的冲突https://github.com/nodejs/node-v0.x-archive/issues/7773

于 2018-01-17T15:18:07.007 回答