Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net核心HTTP请求永远不会到达我的API,也不会重定向到HTTPS_C#_Asp.net_Asp.net Core_Asp.net Core Webapi - Fatal编程技术网

C# ASP.Net核心HTTP请求永远不会到达我的API,也不会重定向到HTTPS

C# ASP.Net核心HTTP请求永远不会到达我的API,也不会重定向到HTTPS,c#,asp.net,asp.net-core,asp.net-core-webapi,C#,Asp.net,Asp.net Core,Asp.net Core Webapi,当我使用HTTP URL调用我的asp.net核心API时,请求永远不会到达我的应用程序,我添加了一个中间件来测试这一点,并且请求永远不会到达上下文。虽然我已经配置了https重定向,如下所示,但没有Http请求重定向到https。 但当我使用HTTPS URL时,请求现在会命中我的应用程序。 我希望能够从Http URL调用我的API,然后它重定向到https 我在网上看到的一切我都试过了。 我尝试启用HTTPS重定向,但没有任何效果。 以下是https重定向的外观: public void

当我使用HTTP URL调用我的asp.net核心API时,请求永远不会到达我的应用程序,我添加了一个中间件来测试这一点,并且请求永远不会到达上下文。虽然我已经配置了https重定向,如下所示,但没有Http请求重定向到https。 但当我使用HTTPS URL时,请求现在会命中我的应用程序。 我希望能够从Http URL调用我的API,然后它重定向到https

我在网上看到的一切我都试过了。 我尝试启用HTTPS重定向,但没有任何效果。 以下是https重定向的外观:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
    if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
    }
    else {
        app.ConfigureExceptionMiddleware();
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();
    app.UseMvc();
}
在configureServices方法中:

services.AddHttpsRedirection(options => {
    options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect;
    options.HttpsPort = 44382;
});
launchSettings.json

 "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53471",
      "sslPort": 44382
    }
  },
代码不起作用,也不启用重定向。它只允许我通过HTTPS访问我的应用程序,但未完成重定向。
有人能告诉我如何调用Http重定向到https吗?

导致此问题的原因是我的Launch settings.json中有两个配置文件,并且我选择了错误的配置文件来启动应用程序。
选择属性为“commandName”的配置文件(在项目设置中):“project”解决了此问题。我的回答中的评论引导我找到了解决这个问题的正确途径。

我认为您缺少HTTPS端口,因此您的应用程序应该记录错误消息
“无法确定用于重定向的HTTPS端口。”

您可以使用以下方法之一配置端口

  • 设置
    httpsreditionoptions.HttpsPort
  • 设置
    ASPNETCORE\u HTTPS\u端口
    环境变量(重新启动计算机以反映更改)
  • 您可以在appsettings.json文件中配置
    https\u端口
    端口 e、 g:

  • 在launchsettings.json中设置HTTPS URL

我希望这些方法之一可以解决您的问题

你的launchsettings.json中有其他配置文件吗?@John Code你提到过这个-https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.0&tabs=visual studio。它说,在开发中,在launchsettings.json中设置HTTPS URL。使用IIS Express时启用HTTPS。谢谢各位,你们引导我走上了正确的道路。我有2个配置文件,选择属性为“commandName”的配置文件(在项目设置中):“project”解决了此问题
  {
     "https_port": 443
  }