IIS Express / Kestrel挂在OPTIONS请求上

时间:2018-07-11 06:21:58

标签: asp.net-core visual-studio-2017 iis-express kestrel-http-server iis-express-10

我有一个.NET Core 2.0项目,目标是整个.NET Framework:

<TargetFramework>net461</TargetFramework>
...
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />

在Windows 10,本地主机上运行,​​使用Visual Studio Community 2017(15.7.4)和IIS Express(10.0.14358.1000)。

通常,ajax请求会卡在OPTIONS请求上(请参见图片),从而阻止所有后续请求(它们也会卡在OPTIONS (pending)上)。

这可以在第一个请求时发生,也可以在直到那时为止的调试会话中间进行。

然后唯一的解决方案是停止在VS中调试项目,停止IIS Express并再次构建项目,然后再次启动调试器。

我不知道如何调试它,或者如何找出导致它的原因。是VS,Kestrel,IIS Express等吗?

这是在Chrome中的外观: enter image description here

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

0 个答案:

没有答案