【问题标题】:ASP.NET Core 3.0 React app errors: failed to proxyASP.NET Core 3.0 React 应用程序错误:代理失败
【发布时间】:2019-06-26 17:12:55
【问题描述】:

(仅供参考,这是我的第一个任何类型的 Microsoft 项目,我不熟悉代理服务器等技术,因此我对问题的描述可能不是最好的)。

在过去一个月左右的时间里,我一直在开发 ASP.NET Core 3.0(预览版)React 应用程序,没有任何问题。上周五我开始更新 web api 以从数据库中提取数据以在 UI 中绘制图表。本周我从上次中断的地方继续,但我的项目现在在启动时出错。

自上次工作以来发生的事件...我在周五短暂安装并使用了 Fiddler 以运行一些 api 调用,但随后切换到 Postman。一切都很好,我让一切都在运行(可能已经关闭了 Fiddler,不记得了)。本周我进行了一些数据库更改(通过 Fluent API 设置多列索引)并向数据库(SQL Server)添加更多数据。然后我继续从 Postman 中的请求开始处理 web api,但它出错了。我去查看了应用程序 UI,但也出现了错误。

经过两天的谷歌搜索/故障排除后,我认为给出的最有用的错误是以下错误。从错误消息中,我不知道端口 50158 来自哪里。应用程序在 https://localhost:44398/ 加载。我在整个计算机上搜索“50158”,只在 IIS 日志文件中找到它。这是每个日志文件中的前 4 行。每个文件的其余部分仅提及“44398”。

为站点“MyAwesomeApplication”应用程序“/”成功注册 URL“https://localhost:44398/” 成功为站点“MyAwesomeApplication”应用程序“/”注册 URL“http://localhost:50158/” 网站“MyAwesomeApplication”注册完成 请求开始:“GET”https://localhost:44398/

我在 SO 上发现了一些帖子提到 Fiddler 导致了与此错误类似的问题,但是,它们并没有帮助我解决问题。

SO 上的一些帖子提到取消选中 Internet 属性 > 连接 > LAN 设置上的“自动检测设置”。我的电脑上确实没有勾选。

我尝试过的一些事情:

我使用所有相同的规范创建了一个新项目,但得到了相同的错误。

我完全删除了 Fiddler。

我恢复了最新的数据库更改。

这个问题是从哪里来的,我需要做些什么来解决它?

如果有更多(以及什么)信息有用,请告诉我。这个问题超出了我目前的知识库。

#

错误信息(抱歉,不知道如何正确格式化)

处理请求时发生未处理的异常。 SocketException: 由于目标机器主动拒绝,无法建立连接。 System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancelToken)

HttpRequestException: 由于目标机器主动拒绝,无法建立连接。 System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancelToken)

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

底层异常消息是“无法建立连接,因为目标机器主动拒绝了它。”。查看 InnerException 了解更多详细信息。 Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.PerformProxyRequest(HttpContext context, HttpClient httpClient, Task baseUriTask, CancellationToken applicationStoppingToken, bool proxy404s)

堆栈查询 Cookie 标头路由 SocketException: 由于目标机器主动拒绝,无法建立连接。 System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancelToken)

显示原始异常详细信息 HttpRequestException: 由于目标机器主动拒绝,无法建立连接。 System.Net.Http.ConnectHelper.ConnectAsync(字符串主机,int 端口,CancellationToken cancelToken) System.Threading.Tasks.ValueTask.get_Result() System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage 请求,布尔allowHttp2,CancellationToken cancelToken) System.Threading.Tasks.ValueTask.get_Result() System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage 请求,CancellationToken cancelToken) System.Threading.Tasks.ValueTask.get_Result() System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage 请求,CancellationToken cancelToken) System.Threading.Tasks.ValueTask.get_Result() System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage 请求,布尔 doRequestAuth,CancellationToken 取消令牌) System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(任务 sendTask,HttpRequestMessage 请求,CancellationTokenSource cts,bool disposeCts) Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.PerformProxyRequest(HttpContext context, HttpClient httpClient, Task baseUriTask, CancellationToken applicationStoppingToken, bool proxy404s)

显示原始异常详细信息 HttpRequestException: 无法将请求代理到http://localhost:50158/,因为对代理目标的请求失败。检查代理目标服务器是否正在运行并接受对http://localhost:50158/ 的请求。底层异常消息是“无法建立连接,因为目标机器主动拒绝了它。”。有关更多详细信息,请查看 InnerException。 Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.PerformProxyRequest(HttpContext 上下文,HttpClient httpClient,任务 baseUriTask,CancellationToken applicationStoppingToken,bool proxy404s) Microsoft.AspNetCore.Builder.SpaProxyingExtensions+c__DisplayClass2_0+d.MoveNext() Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) IdentityServer4.Hosting.IdentityServerMiddleware.Invoke(HttpContext 上下文,IEndpointRouter 路由器,IUserSession 会话,IEventService 事件) IdentityServer4.Hosting.MutualTlsTokenEndpointMiddleware.Invoke(HttpContext 上下文,IAuthenticationSchemeProvider 方案) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext 上下文) IdentityServer4.Hosting.BaseUrlMiddleware.Invoke(HttpContext 上下文) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext 上下文) Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext 上下文) Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext) Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

显示原始异常详细信息

【问题讨论】:

    标签: proxy fiddler socketexception asp.net-core-3.0


    【解决方案1】:

    对我来说,这与 cookie 大小对于开发服务器来说太大有关。

    我正在开发一个由 ASP.NET Core 3.1 提供的 React 客户端应用程序,其中 Keycloak 作为 OP。

    新的 React 模板也突然不再启动。 清除 cookie 让我的项目重新开始。

    参考: https://techcommunity.microsoft.com/t5/iis-support-blog/400-error-in-asp-net-core-project-because-of-8-kb-cookie-limit/bc-p/1308877#M431

    【讨论】:

      【解决方案2】:

      我决定尝试将所有 NuGet 包滚动到以前的版本 (v3.0.0-preview5-19227)。我的应用程序现在按预期运行。查看 dotnet-core 的下载页面,看起来 v3.0.0-preview6 于 06/12 发布。我在那之前就开始了我的项目,所以也许我更新了软件包,只是不记得了???无论哪种方式,时间都可以弥补失去的 2 天。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-11
        • 2020-07-15
        相关资源
        最近更新 更多