Angular11+.NET Core3调用UseProxyToSpaDevelopmentServer报主动拒绝连接如何解决
报错根因
你代码中spa.UseProxyToSpaDevelopmentServer("http://localhost:4200")是.NET Core 内置的SPA中间件配置,作用是将前端页面相关的请求代理转发到Angular的本地开发服务器,4200是Angular开发服务的默认端口。
你遇到的连接拒绝报错,本质是Angular开发服务没有启动,后端转发请求时找不到目标服务,和SQL Server没有关联。
正确启动流程
你确实遗漏了Angular前端服务的启动步骤,按以下顺序操作即可:
- 打开终端进入项目的Angular前端根目录(一般是名为
ClientApp的文件夹,该目录下会有package.json、angular.json等Angular配置文件) - 如果是首次运行项目,先执行依赖安装命令:
npm install - 执行Angular开发服务启动命令:
ng serve,启动成功后终端会明确提示服务运行在http://localhost:4200 - 保持Angular服务的终端不关闭,另开一个终端启动.NET Core 后端服务即可正常访问
可选优化方案
如果不想每次手动启动两个服务,可以修改Startup.cs的SPA配置,让.NET后端启动时自动拉起Angular开发服务,替换原有代理配置即可:
// 替换原有的spa.UseProxyToSpaDevelopmentServer代码 spa.Options.SourcePath = "ClientApp"; // 此处替换为你实际的前端项目相对路径 if (env.IsDevelopment()) { spa.UseAngularCliServer(npmScript: "start"); }
该配置仅建议在开发环境使用,生产环境打包部署时不需要启动Angular开发服务,直接用打包后的静态文件即可。
内容的提问来源于stack exchange,提问作者misuk
相关产品推荐
相关产品推荐

