在不同端口上运行的dotnet导致“连接id'xxxx'请求处理异常结束”

时间:2019-10-24 18:51:57

标签: c# api .net-core .net-core-2.2

最诚挚的问候。

我正在使用.net core 2.2和cors协议中的api应用程序,一切都进行得很好,直到我使用{{1}将api的端口从默认的https://localhost:5001更改为https://localhost:5002 }}在UseUrls https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.hostingabstractionswebhostbuilderextensions.useurls?view=aspnetcore-2.2

上的方法

通过HostingAbstractionsWebHostBuilderExtensions向api发送请求仍然有效,这意味着使用curl https://localhost:5002/api/values方法导致cors验证无法正常进行吗?我需要额外的配置方法吗?

Program.cs

UseUrls

控制台日志:

namespace api {

  public class Program {

    public static void Main(string[] args) {
      CreateWebHostBuilder(args)
/*===>*/.UseUrls("https://localhost:5002", "http://localhost:5003")
        .Build()
        .Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
      WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
  }
}

2 个答案:

答案 0 :(得分:0)

  

System.IO.IOException:解密操作失败,请参阅内部异常。 ---> System.ComponentModel.Win32Exception:错误的证书处理过程

这是证书错误。当您通过HTTPS和其他端口访问它时。

当将Kestrel或HTTP.sys用作面向公众的边缘服务器时,必须将Kestrel或HTTP.sys配置为在这两个服务器上侦听:

  • 客户端重定向到的安全端口(通常为443 in 生产和5001正在开发中。

您需要在Startup.cs

中添加以下内容
app.UseHttpsRedirection();

在您的appsettings.json

{
"https_port": 5002, // whatever you like to use
}

更多info

答案 1 :(得分:0)

我发现了问题。实际上,我是在使用Firefox进行测试的,它非常重视https证书(https://support.mozilla.org/en-US/kb/what-does-your-connection-is-not-secure-mean)。每次更改api的端口时,我都必须从Firefox访问api url以允许使用它,否则前端应用程序(正在使用axios)将失败,而没有给出任何解释。