aspnet核心错误:过滤器请求的授权失败' Microsoft.AspNetCore.Mvc.RequireHttpsAttribute'

时间:2016-12-28 17:12:49

标签: iis asp.net-core iis-8

我正在使用SSL构建和测试aspnet核心应用程序。在IIS Express中运行该站点工作正常。所以,我想我可能会看到在IIS 10上运行它需要什么。正如预期的那样,有一些问题。

首先,我需要澄清一下,我已成功在IIS中托管了一个非SSL aspnet应用程序,因此aspnet核心应用程序所需的所有位都在那里。但是对于SSL应用程序,我得到的只是浏览器中的一条消息,说明发生了错误。在网络服务器日志中也没什么用处。

所以,我的第一个测试是尝试使用dotnet xxx.dll直接在已发布的文件夹中运行应用程序。那是我注意到授权错误的时候。

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

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

我通过生成pfx证书解决了这个问题,正如Shawn Wildermuth的博客(https://wildermuth.com/2016/10/26/Testing-SSL-in-ASP-NET-Core)所解释的那样。完成后,修改Program.cs文件,如下所示:

enter image description here

完成此操作后,重新发布项目(命令:dotnet publish)并将pfx文件移动到已发布的文件夹中。

现在,当您在已发布的文件夹中运行dotnet MyFileName.dll时,它可以访问证书并且一切正常。 (好吧,它对我有用)