4

通过 HTTP 和 Visual Studio 内部它工作正常。但是,当我尝试通过 HTTPS 访问端点时,我看到了这个错误,我不完全确定如何解决这个问题:

info: Microsoft.AspNetCore.Server.Kestrel[17]
  Connection id "0HL36O0ESIPBQ" bad request data: "Invalid request line: <0x16><0x03><0x01><0x00><0x83><0x01><0x00><0x00><0x7F><0x03><0x01>X<0xC1><0x07><0xDC><0x9E>~Y<0x05><0x13><0xC1><0xF4>^J<0xCF><0xAB><0x11><0xC3>R[<0x87><0x1D>..."Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException: Invalid request line: <0x16><0x03><0x01><0x00><0x83><0x01><0x00><0x00><0x7F><0x03><0x01>X<0xC1><0x07><0xDC><0x9E>~Y<0x05><0x13><0xC1><0xF4>^J<0xCF><0xAB><0x11><0xC3>R[<0x87><0x1D>

提琴手给了我这个:

System.IO.IOException The handshake failed due to an unexpected packet format.

我的直觉告诉我,这与从 dotnet core 1.0.1 迁移到 1.1.0 有关。在那之前一切都很好,但同样有可能我搞砸了其他事情,我只是不确定是什么!:)

4

2 回答 2

2

好的。我会回答我自己的问题。事实证明,我只需要在 program.cs 中将 .UseHttps 添加到我的 WebHostBuilder 中:

.UseKestrel(options =>
{
    options.AddServerHeader = false;
    options.UseHttps("MyPfx", "MyPassword");
})

我想我有点困惑以前没有这个是如何工作的,但是嘿,它现在可以工作了!

于 2017-03-09T08:40:41.927 回答
2

我将以答案的形式添加到保罗的提示中。

.UseHttps 类位于“Microsoft.AspNetCore.Server.Kestrel.Https”模块中,可以通过在包管理器 UI 中搜索“usehttps”或将其添加到 project.json 文件中来添加。请注意,在撰写本文时,1.1.1 版现已可用于 ASP.NET Core,因此请务必选择您需要的版本。

不确定它会解决我的问题,但也许它会解决其他阅读此书的人的问题。

于 2017-03-22T07:20:34.027 回答