You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Visual Studio中运行Angular 9 Web项目出现SpaServices报错

信息: Microsoft.Hosting.Lifetime[0]
正在监听: https://localhost:5001
信息: Microsoft.Hosting.Lifetime[0]
正在监听: http://localhost:5000
信息: Microsoft.Hosting.Lifetime[0]
应用已启动,按Ctrl+C关闭
信息: Microsoft.Hosting.Lifetime[0]
托管环境: 开发环境
信息: Microsoft.Hosting.Lifetime[0]
内容根路径: C:\Users\CF135238\source\repos\COT.DEV.Forf\Forf
失败: Microsoft.AspNetCore.SpaServices[0]
(node:7664) [DEP0111] 弃用告警: 对 process.binding('http_parser') 的调用已被废弃
失败: Microsoft.AspNetCore.SpaServices[0]
(执行 node --trace-deprecation ... 可查看告警触发的代码位置)

问题根因

你看到的两条fail等级日志本质是Node版本和Angular构建工具的兼容性告警,只是ASP.NET Core的Spa服务中间件默认把Node输出的所有stderr内容都标记为失败等级,并不代表程序真的运行出错。页面空白的核心原因是.NET后端和Angular前端服务的代理配置不匹配。

解决方案

1. 修复页面空白问题

  • 打开项目根目录的package.json,查看scripts下的start命令,确认Angular dev server的启动端口,默认配置下ng serve使用4200端口
  • 打开.NET项目的配置文件:
    • 若为.NET 5及更早版本,检查Startup.cs里ConfigureServices方法中的Spa配置,确认UseAngularCliServer的端口和上述Angular启动端口一致
    • 若为.NET 6及以上版本,检查Program.cs中的Spa相关配置,确认代理指向的前端端口正确
  • 检查项目根目录下的proxy.conf.js,确认后端API代理规则没有拦截前端静态资源请求

2. 消除DEP0111弃用告警

该告警是Node 16+版本废弃了process.binding('http_parser')接口,而旧版本的Angular构建依赖仍在调用该接口导致,两种修复方案二选一:

  • 方案一:将本地Node版本降级到14.x LTS版本,该版本尚未废弃对应接口,告警会直接消失
  • 方案二:升级项目的Angular构建依赖到12.x及以上版本,执行以下命令即可:
    npm update @angular/cli @angular-devkit/build-angular
    

3. 验证启动效果

配置修改完成后重新在VS中启动项目,如果依旧无法加载页面,可以直接访问Angular dev server的端口(默认4200)排查是否是前端服务本身启动失败,如果该端口可正常访问,只需调整.NET的Spa代理配置即可。

内容的提问来源于stack exchange,提问作者Tdigges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:15:09