Kestrel: Invoke-WebRequest не работает, пока URL работает в браузере? - PullRequest
0 голосов
/ 31 января 2020

Обновление:

Следующая ошибка возникает только при запуске приложения с использованием Kestrel.

Я уже добавил следующие две строки для Microsoft.AspNetCore.Authentication.Negotiate

// in public void ConfigureServices(IServiceCollection services)
services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();

// in public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.UseAuthentication();

Я создал новый тестовый Asp. Net базовый проект веб-API (с Windows аутентификация ) с использованием Visual Studio 2019. И запустил его в Visual Studio, и браузер появился с json возвращается показано.

Затем я открываю окно Powershell и проверяю URL. Он получил следующую ошибку?

PS C:\> Invoke-WebRequest https://localhost:5001/weatherforecast
Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.
At line:1 char:1
+ Invoke-WebRequest https://localhost:5001/weatherforecast
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Я нашел ASP.NET Core HTTPS development certificate.

PS C:\> ls Cert:\CurrentUser\My | ? Subject -eq 'CN=localhost' | fl

Subject      : CN=localhost
Issuer       : CN=localhost
Thumbprint   : 7A16573FF2DBA47695B8CA15916D445C9361F255
FriendlyName : ASP.NET Core HTTPS development certificate
NotBefore    : 12/6/2019 4:45:04 PM
NotAfter     : 12/5/2020 4:45:04 PM
Extensions   : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid, System.Security.Cryptography.Oid,
               System.Security.Cryptography.Oid...}

И он все еще получил ошибку?

PS C:\> Invoke-WebRequest https://localhost:5001/weatherforecast -CertificateThumbprint 7A16573FF2DBA47695B8CA15916D445C -UseDefaultCredentials
9361F255
Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.
At line:1 char:1
+ Invoke-WebRequest https://localhost:5001/weatherforecast -Certificate ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

1 Ответ

0 голосов
/ 31 января 2020

Этот работал для меня. Я могу читать это из веб-API. Попробуйте Invoke-RestMethod с параметром -Certificate $ cert в качестве параметра.

$cert = Get-ChildItem -Path Cert:\CurrentUser\My\4E1E5F6B5BAD49B13521C2DF12275C37E126DBB9
$response = Invoke-RestMethod https://localhost:5001/weatherforecast -Certificate $cert
Write-Host $response.Count

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...