.net core 为什么.NETCore在Mac上不断重定向?

.net core 为什么.NETCore在Mac上不断重定向?,.net-core,.net Core,我正试图在Mac上建立一个.NET核心项目;它在Windows上运行良好,但在Mac上无法运行 dotnet运行后,所有内容都正确构建,并在终端中显示此消息: [09:46:04 INF] Now listening on: http://localhost:44382 但是,当我输入这个地址时,它只返回302并将我重定向到https://localhost/。当然,那里什么都不存在 这是我的启动设置。json: { "iisSettings": { "

我正试图在Mac上建立一个.NET核心项目;它在Windows上运行良好,但在Mac上无法运行

dotnet运行后,所有内容都正确构建,并在终端中显示此消息:

[09:46:04 INF] Now listening on: http://localhost:44382
但是,当我输入这个地址时,它只返回302并将我重定向到
https://localhost/
。当然,那里什么都不存在

这是我的
启动设置。json

{
  "iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "http://localhost/OW.WebApplication.Web",
      "sslPort": 0
    },
    "iisExpress": {
      "applicationUrl": "https://localhost:44365/",
      "sslPort": 44365
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "https://localhost:44365/",
      "environmentVariables": {
        "OW_LOCAL_DEV": "true",
        "ASPNETCORE_ENVIRONMENT": "development",
        "OW_KEYVAULT": "https://ffffff-development.vault.azure.net/",
        "OW_E2E_TEST_TOKEN": "BcAdl0ffffffffff3LOERQ69Y"
      }
    },
    "OW.WebApplication.Web": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "OW_LOCAL_DEV": "true",
        "ASPNETCORE_ENVIRONMENT": "development",
        "OW_KEYVAULT": "https://ffffff-development.vault.azure.net/"
      },
      "applicationUrl": "http://localhost:44382/"
    }
  }
}
我猜这个配置有问题,但我就是想不出来。任何提示都会很有帮助

编辑: 这是我的web.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
    </system.serviceModel>
    <system.webServer>

        <!--<rewrite>
            <rules>
                <rule name="GeoServer" stopProcessing="true">
                    <match url="^geoserver(.*)" />
                    <conditions>
                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                    </conditions>
                    <action type="Redirect" url="{C:1}://geoserver.azurewebsites.net/geoserver{R:1}" />
                </rule>
            </rules>
        </rewrite>-->
    </system.webServer>
    <system.net>
        <settings>
            <servicePointManager checkCertificateName="false" checkCertificateRevocationList="false" />
        </settings>
    </system.net>
</configuration>
我已使用以下代码更新了Startup.cs文件:

services
    .AddHttpsRedirection(options => {
        options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
        options.HttpsPort = 44365;
    });

现在我甚至无法启动该应用程序。

很可能是您在
Startup.cs
文件中启用了中间件从HTTP重定向到HTTPS。检查您是否正在使用
UseHttpsRedirection
中间件,如下所示:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
    });
}
您也可能正在使用
OW.WebApplication.Web
(Kestrel)而不是IIS Express启动应用程序。IIS Express能够使用HTTPS,而Kestrel需要设置证书,否则您将收到浏览器安全警告。请注意,iisexpress在Mac上不起作用,因此您可能会使用Kestrel。这是Windows上Visual Studio上的下拉列表:


如果您需要从HTTP重定向到HTTPS。查看此文档,了解如何配置HTTPS端口,以便在开发中运行不使用标准端口80和443的应用程序。

在Windows上运行时,是否使用IIS Express?@Dai是的,据我所知,无法在Mac上使用IIS Express。如果将项目更改为使用
OW.WebApplication.Web
配置文件而不是在Windows上使用IIS Express,会发生什么情况?您是否有有效的
web.config
和/或任何IIS URL重写规则?@Dai使用
OW.WebApplication.web
配置文件在Windows上也会发生同样的情况。我有
web.config
,我已经更新了问题,请查看。我还添加了日志,可能会有帮助。嘿@Dai,你有什么想法吗?@Muhamamad Rehan Saeed谢谢你的帮助。有app.UseHttpsRedirection();在代码中。我已经用更新的Startup.cs文件更新了我的问题;现在我无法运行该应用程序。我应该如何配置端口,而不是那样?除此之外,我还应该做些别的事情吗?
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
    });
}