gpt4 book ai didi

c# - Web API 2 和 IIS 10 - 偶发的 ERR_CONNECTION_RESET

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:31 26 4
gpt4 key购买 nike

我有一个外部托管网站和一个托管在本地网络上的 ASP.NET(Framework 4.5.2) Web API 2。外部网站在单击按钮时向 API 发出 GET 请求,查询 MSSQL 数据库并返回 JSON 以在页面上显示数据。 Web API 目前托管在运行 IIS 10 的 Windows 10 机器上。

我已经通过 NuGet 控制台安装了 Miscrosoft.AspNet.Cors 包,并通过将这段代码添加到 Web.config 文件来启用 CORS:

<add name="Access-Control-Allow-Origin" value="*" />

以及 WebApiConfig.cs 的这个片段:

config.EnableCors();    

当我在托管 Web API 的同一网络上时,该网站可以完美运行。我在外部网络上遇到问题。偶尔,我收到 ERR_CONN_RESET(Chrome) 和“网络连接丢失”(Safari)。当我打开一个新的浏览器并导航到该站点时,错误似乎更频繁地发生。单击几下按钮后,错误停止,页面正常运行。如果我直接导​​航到 Web API 端点,我会遇到类似的行为。错误是零星的,这使得这个问题极难解决。 FailedRequest 跟踪不会创建日志,因为请求没有发送到服务器。在 IIS 中,我尝试将应用程序池的启动模式更改为“始终运行”,并且还启用了 32 位应用程序,但没有成功。关于什么可能导致此问题的任何想法?我什么时候可以排除我的代码、CORS 配置和 IIS 配置?我倾向于这是一个网络问题,但我们的网络管理员确信问题出在我这边。任何帮助将不胜感激。这个问题耗费了我整个星期的时间,我快要抓狂了!

最佳答案

您绝对可以排除您的代码、CORS 配置和IIS 配置。根据错误代码,您的服务器似乎没有间歇性地响应,或者可能是中间设备/代理/防火墙阻止了请求并因此超时。

由于您的网络管理员排除了由于中间设备引起的问题,您可以在托管 webAPI 的机器上尝试一些操作(这些都不会让您满意)

1) 检查 http.sys 日志 (C:\Windows\System32\LogFiles\HTTPERR) 并根据描述检查这里 https://support.microsoft.com/en-in/kb/820729

2) 尝试完全禁用防火墙。转到命令提示符(管理员模式)并运行

NetSh Advfirewall set allprofiles state off

3) 如果第 2 步没有帮助,请转到运行 -> msconfig -> 服务 -> 隐藏所有 Microsoft 服务 -> 全部禁用 -> 重新启动并尝试。

如果没有任何效果,请从服务器和客户端同时进行网络跟踪,您的网络管理员可以弄清楚发生了什么。

关于c# - Web API 2 和 IIS 10 - 偶发的 ERR_CONNECTION_RESET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38644160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com