TimeoutException:Angular CLI进程未在超时时间内开始侦听请求

For*_*ent 5 visual-studio-2017 angular

我有一个用VS2017 Pro版本15.9.8构建的有角度的Web项目。它可以编译为目标.net Framework 4.6,但是在IISExpress中运行时,它总是超时。我尝试了以下方法:

  • 在Startup.cs中,我指定spa.Options.StartupTimeout为2分钟[但仍然超时]
  • 里面ClientApp的文件夹,执行npm startng build:它总是抱怨Error: Cannot find module '@angular/core/package.json'

很多人说只是ng serve直接从命令行运行,但是该项目是在VS2017中构建的,因此该node_modules文件夹位于项目的根目录中,而不是该ClientApp文件夹下。此外,该@angular文件夹不包含该core文件夹,而是位于该@angular-devkit文件夹下。

所以我的问题是:

  • 如果从VS2017内部运行,如何解决超时问题?
  • 如果从命令行运行(例如ng serve),如何解决文件夹问题?

dst*_*stj 17

采取从这里,并在这里,它似乎在.NET核心3和角9.修改以及工作角服务器在启动的方式package.json来添加一个虚拟echo

"start": "ng serve"
Run Code Online (Sandbox Code Playgroud)

变成

"start": "echo Starting && ng serve"
Run Code Online (Sandbox Code Playgroud)


Arj*_*ani 16

ASP.NET 核心 >= 3.0

如果您使用的是 asp.net core 3.0,则不应UseAngularCliServer改用。您应该使用 asp.net 作为开发代理。更多细节在这里

app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
                }
            });
Run Code Online (Sandbox Code Playgroud)

打开命令 widnow,转到 ClientApp 并启动​​ npm 服务器。

c:\your\project\directory\> cd ClientApp
c:\your\project\directory\> npm start
Run Code Online (Sandbox Code Playgroud)

ASP.NET 核心 2.0

refresh(F5) 您的浏览器或增加 SPA 配置的超时时间

app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer(npmScript: "start");
                    spa.Options.StartupTimeout = TimeSpan.FromSeconds(200); // <-- add this line
                }
            });
Run Code Online (Sandbox Code Playgroud)

在开发环境中,npm 在服务之前构建了一个 angular 应用程序。有时构建需要超过 120 秒。

  • 对我来说,错误显示“...超时时间为 0 秒”。启动超时的默认值是多少?你的意思是说默认超时是120秒? (2认同)

chr*_*dev 13

我正在运行Angular 9.net core 3.1VS 2019 Community。升级到最新版本的 Angular 后,我开始解决这个问题。阅读其他问题后,我尝试了一些步骤,包括增加超时时间,但没有任何效果。

我为使其工作所做的更改是"progress" : trueangular.json文件中设置, 。要找到正确的位置,它位于serve.

 "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "xxx:build",
            "progress": true
          }, 
Run Code Online (Sandbox Code Playgroud)


Rey*_*gle 9

刷新(F5)页面可以为我解决问题。


小智 8

这是一个解决方法。使用 ASP .NET Core 3.1 测试

1.在您的 Startup 类中,将 spa.UseAngularCliServer 调用替换为以下内容:

spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
Run Code Online (Sandbox Code Playgroud)

2.在命令提示符下,切换到 ClientApp 子目录,并启动 Angular CLI 开发服务器:

cd ClientApp
npm start
Run Code Online (Sandbox Code Playgroud)

来源:ASP.NET Core 文档


小智 1

我有类似的经历,但使用的是 .NET Core 2.1 和 2.2。

浏览过的经历:

可能会有所帮助(与 .NET Core 相关,而不是 .Net Framework 4.6):

主要区别是“文件夹问题”。在 中.NET CoreClientApp所有角度文件夹都集中在一处。

我的经验(使用.NET Core 2.1和2.2):

  • ng serve在命令提示符下运行ClientApp(即包含 Angular 的文件夹)
  • 然后,dotnet run在项目文件夹中的命令提示符下运行。

希望这对某人有帮助。