gpt4 book ai didi

asp.net - 无法使用 HTTPS 启动 ASP.NET Core

转载 作者:行者123 更新时间:2023-12-01 03:21:50 26 4
gpt4 key购买 nike

我有一个 WPF 应用程序,它启动一个 ASP.NET 核心 WEB API 应用程序。

当我使用这些配置启动 WEB API 项目作为启动项目时,它适用于 HTTPS。
但是,当我尝试从 WPF 环境启动此应用程序时,它不适用于 HTTPS。

配置:

  1. Web API configuration:


enter image description here

  1. In Startup.cs file:

public void ConfigureServices(IServiceCollection services)
{

services.AddMvc();

services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
}

The Main method looks like this:


public static void InitHttpServer()
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("https://localhost:44300/")
//.UseApplicationInsights()
.Build();

host.Run();
}

When I check the port using netstat command, it shows:



enter image description here

Postman says:



enter image description here

应用程序中操作方法的调试器都没有被命中。

附言:
当我恢复对 HTTPS 的更改并尝试使用 HTTP 时,它工作正常。

HTTP 的主要方法具有不同的端口,并且没有上面提到的配置更改。

最佳答案

当您在 Web 服务器设置中启用 SSL 时,您为 IIS 启用 SSL,而不是您的应用程序。当您从 Visual Studio 启动 Web API 时,它作为反向代理服务在 IIS 后面运行。这就是为什么只有当您将其作为启动项目运行时才能获得 SSL。当您从 WPF 应用程序运行它时,API 仅在 Kestrel 上运行。

因此,要在 Kestrel 上启用 SSL,您需要添加一个证书,然后在设置 Kestrel 时将其传入。

var cert = new X509Certificate2("YourCert.pfx", "password");

var host = new WebHostBuilder()
.UseKestrel(cfg => cfg.UseHttps(cert))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("https://localhost:44300/")
//.UseApplicationInsights()
.Build();

关于asp.net - 无法使用 HTTPS 启动 ASP.NET Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44637350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com