无法在ASP.NET Core 2.1 + IIS上设置HTTPS

胡安诺拉

我试图将https配置到Windows Server 2012上IIS上托管的网站。我的项目是ASP.NET Core 2.1中的默认WebApi应用程序,并且我使用win-acme来配置带有Let's Encrypt证书的IIS。

除了HTTP流量未重定向到https之外,其他一切运行正常。如果查看日志,则会得到:

warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
      Failed to determine the https port for redirect.

我认为可以通过将其添加到我的ConfigureServices方法中来轻松解决

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

但是,现在我根本无法访问我的网站。Chrome给我一条消息:

此页面无法正常运行www.example.com将您重定向了太多次

如果我查看日志,它显示出很多这样的行:

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://example.com
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 0.1026ms 307
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://example.com
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 0.1837ms 307

有人知道我在做什么错吗?

胡安诺拉

我刚刚找到答案。可以通过将以下代码添加到ConfigureServices.cs来解决此问题:

services.Configure<ForwardedHeadersOptions>(options =>
{
    options.ForwardLimit = 2;
    options.KnownProxies.Add(IPAddress.Parse("127.0.10.1"));
    options.ForwardedForHeaderName = "X-Forwarded-For-My-Custom-Header-Name";
});

来源:https : //docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-2.1#forwarded-headers-middleware-options

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Asp.Net Core 1转换为Core 2后Jwt无法正常工作

ASP.NET Core 2.1 Preview 2 App无法在Azure App Service上运行

ASP.Net Core 2无法解析类型服务

无法使用ASP.net Core 2添加迁移

在ASP.NET Core 2中无法识别SignInManager

如何在IIS上承载基本的ASP.NET Core 2 WebAPI应用程序

无法使用HTTPS启动ASP.NET Core

无法信任ASP.NET Core中的本地HTTPs证书

ASP.NET Core 2,IIS AppPool崩溃并停止

在IIS上托管Asp.Net Core 2

Docker 上的 Asp.net Core - 无法访问 index.html 或 /swagger/v1/swagger.json

IIS Express上的ASP.NET Core 3.1应用程序:“无法访问此站点”

Asp.net Core 2.1 Web App无法在IIS上正确呈现

ASP.NET Core 3.1 HTTP错误500.32-ANCM无法在IIS上加载dll

Arch Linux上的asp.net core 2.1无法运行

ASP.NET Core 3:无法在 linux 上运行

ASP .NET CORE 2.0-无法在Debian上启动服务

无法连接到 Asp.Net Core 上的 mysql 容器

ASP.NET 5(ASP.NET Core)-无法与IIS一起运行

无法在ASP.NET Core 2应用程序上注销Identityserver4的OpenIdConnect身份验证

二进制图像无法在视图 asp.net core 2.x 上显示

在Visual Studio的ASP.NET Core + Angular 2模板上设置图像路径

Asp.Net MVC Core 2 - 在 _Layout 上使用 ViewBag

Asp.net Core 2上AddFormatterMappings()的用途是什么

ASP.NET Core + IIS Express如何设置SSL证书

如何修复IIS上的ASP.Net Core 404错误?

IIS上的ASP.NET Core粘性会话

IIS错误502.5上的ASP.NET Core 1.0

IIS 10上的ASP.NET Core 404错误