asp.net-core - IIS Express/Kestrel 挂起 OPTIONS 请求
问题描述
我有一个 .NET Core 2.0 项目,针对完整的 .NET Framework:
<TargetFramework>net461</TargetFramework>
...
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
在 Windows 10 上运行,在 localhost 上,使用带有 IIS Express (10.0.14358.1000) 的 Visual Studio Community 2017 (15.7.4)。
很多时候,ajax 请求会卡在OPTIONS
请求上(见图),阻塞所有后续请求(它们也会卡住OPTIONS (pending)
)。
这可能发生在第一个请求上,或者发生在调试会话的中间,直到那时都很好。
唯一的解决方案是停止在 VS 中调试项目,停止 IIS Express 并再次构建项目,然后再次启动调试器。
我不知道如何调试它,或者如何找出导致它的原因。是 VS、Kestrel、IIS Express 等吗?
如果这有任何帮助,这就是Program.cs
它的样子:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
编辑
这些是典型 OPTIONS 请求的请求/响应标头(这个工作正常)
请求标头
OPTIONS /api/items/2450 HTTP/1.1
Host: localhost:65164
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:5002
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Access-Control-Request-Headers: authorization,cache-control,pragma
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: sv-SE,sv;q=0.9,en-US;q=0.8,en;q=0.7,fr;q=0.6,it;q=0.5,la;q=0.4
响应标头
HTTP/1.1 204 No Content
Server: Kestrel
Access-Control-Allow-Headers: authorization,cache-control,pragma
Access-Control-Allow-Origin: *
X-SourceFiles: =?UTF-8?B?QzpcRGV2ZWxvcG1lbnRcTm90aWZpZWRcc3JjXE5vdGlmaWVkLkFwaS5BZG1pblxhcGlcYWRtaW5cc291cmNlc1xhcnRpY2xlc1wyNDUw?=
X-Powered-By: ASP.NET
Date: Wed, 11 Jul 2018 12:47:55 GMT
解决方案
推荐阅读
- firebase - 在 react native 中获取 base64 编码的图像
- css - 如何圆角 HTML 进度条?
- imagemagick - magickimage montage *.png -colorspace CMYK test.png 结果图片改变了色彩空间?我不明白如何解决它?
- ruby-on-rails - 将设计添加到现有应用程序 - 未定义的方法 `sign_in' for #
- android - Android - 有没有办法使用 recyclerview.addOnScrollListener 作为函数
- python - python如何获取不属于模板的所有图像
- excel - 将公式转换为字符串 vba
- javascript - 在 Google Apps 脚本中为项目列表分配一个数字(最多 50 个)
- python - 索引非常大的 Pandas 数据帧的最快方法
- c++ - 如果在编译时大小未知,如何在堆栈上分配数组?