开发者社区 问答 正文

带ASP.NET的Angular项目模板:SocketException:远程主机强行关闭了现有连接

我将Angular项目模板与ASP.NET Core 2.1版本一起使用:-Angular CLI:8.3.6 -Node:10.16.3

我正在尝试打开一个安装了以下版本的项目:-角度CLI:7.0.2-节点:9.5.0

我的防火墙已关闭。

我收到内部服务器错误:

处理请求时发生未处理的异常。SocketException:现有连接被远程主机未知位置强制关闭

IOException:无法从传输连接中读取数据:现有连接被远程主机强行关闭。System.Net.Sockets.Socket + AwaitableSocketAsyncEventArgs.ThrowException(SocketError错误)

HttpRequestException:发送请求时发生错误。System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage请求,CancellationToken cancelledToken)

HttpRequestException:无法将请求代理到http:// localhost:53292 /,因为对代理目标的请求失败。检查代理目标服务器是否正在运行并接受对http:// localhost:53292 /的请求。

基础异常消息是“发送请求时发生错误。”。请检查InnerException以获取更多详细信息。Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.PerformProxyRequest(HttpContext上下文,HttpClient httpClient,Task baseUriTask,CancellationToken applicationStoppingToken,bool proxy404s)

堆栈查询cookie标头SocketException:现有连接被远程主机强行关闭

显示原始异常的详细信息IOException:无法从传输连接中读取数据:现有连接被远程主机强行关闭。System.Net.Sockets.Socket + AwaitableSocketAsyncEventArgs.ThrowException(SocketError错误)System.Net.Sockets.Socket + AwaitableSocketAsyncEventArgs.GetResult(短令牌)System.Net.Http.HttpConnection.FillAsync()System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync (boolfoldedHeadersAllowed)System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage请求,CancellationToken cancelledToken)

显示原始异常详细信息HttpRequestException:发送请求时发生错误。System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage请求,CancellationToken cancelToken)System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection连接,HttpRequestMessage请求,bool doRequestAuth,CancellationToken cancelleToken)System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage请求,bool doRequestAuth,CancellationToken cancelleToken)System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage请求,CancellationToken cancelToken)System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(任务sendTask,HttpRequestMessage请求,CancellationTokenSource cts,bool disposeCts)Microsoft.AspNetCore.SpaServices .Extensions.Proxy.SpaProxy。

我试图将我的版本降级为创建项目的便携式计算机上安装的版本,但无法解决问题

展开
收起
被纵养的懒猫 2019-09-30 14:56:52 1282 分享 版权
阿里云 AI 助理回答

遇到您描述的问题,看起来是ASP.NET Core应用与Angular项目在通过代理进行通信时出现了问题。这可能是由于版本不兼容、配置错误或网络连接问题导致的。以下是一些可能的解决方案和排查步骤:

  1. 检查代理设置: 确保你的ASP.NET Core应用正确配置了对Angular应用的代理。在Startup.cs文件中,确认UseSpaUseSpaStaticFiles方法调用中的代理设置是否正确指向了Angular应用运行的地址。例如:

    app.UseSpa(spa =>
    {
       spa.Options.SourcePath = "ClientApp";
       if (env.IsDevelopment())
       {
           spa.UseProxyToSpaDevelopmentServer("http://localhost:4200"); // 确保这个地址与Angular应用实际运行的地址匹配
       }
    });
    
  2. 版本兼容性: 虽然你尝试降级版本以匹配原始环境,但确保所有组件(包括.NET Core、Node.js、Angular CLI等)之间的版本兼容性。考虑到你提到的环境差异,建议查阅官方文档或社区讨论,找到这些工具之间推荐的组合。

  3. 防火墙和网络设置: 尽管你提到防火墙已关闭,但仍需检查是否有其他网络限制,如公司或个人网络上的代理设置,可能会干扰本地开发服务器的通信。确保没有其他软件(如安全软件或系统防火墙)阻止了端口访问。

  4. 清理缓存和临时文件: 清理npm缓存、dotnet临时文件以及浏览器缓存,有时候旧的缓存数据会导致奇怪的问题。

  5. 查看日志和调试信息: 在Angular项目和ASP.NET Core项目中增加详细的日志记录,以便获取更具体的错误信息。对于.NET Core应用,可以在appsettings.Development.json中调整日志级别来获取更多调试信息。

  6. 重启服务和开发服务器: 有时候简单地重启Visual Studio、命令行窗口、IIS Express或任何相关的服务可以解决暂时的连接问题。

  7. 检查端口占用: 使用如netstat -ano(Windows)或lsof -i :port(Mac/Linux)的命令检查端口53292是否被其他进程占用,并结束占用该端口的进程。

如果以上步骤都无法解决问题,考虑创建一个全新的最小化项目,逐步添加现有项目的功能,以定位具体引起问题的代码或配置部分。同时,也可以在开发者社区如Stack Overflow上提供详细信息寻求帮助,记得包含错误消息、环境配置和已尝试的解决步骤。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答