我有一个外部托管网站和一个托管在本地网络上的ASP.NET(Framework 4.5.2)Web API 2。外部网站通过单击API按钮发出GET请求,该API查询MSSQL数据库并返回JSON以在页面上显示数据。该Web API目前托管在运行IIS 10的Windows 10框中。Web API 2和IIS 10 - 偶发性ERR_CONNECTION_RESET
我已经通过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错误,因为通常CORS错误会建议启用CORS或从同一个域进行调用。如果您确定请求未达到IIS,则可以检查http.sys日志(C:\ Windows \ System32 \ LogFiles \ HTTPERR)并根据说明检查https://support.microsoft.com/en-in/kb/820729。也可能是网络错误,如防火墙阻止。你在小提琴的痕迹中看到了什么? –
执行一个提琴手跟踪并获得504错误,指示CORS头被从HTTP头中剥离。这可能是由防火墙造成的吗? – user2486993
您可以添加完整的提琴手痕迹在这里,即请求和响应 –