【发布时间】:2016-12-28 17:12:48
【问题描述】:
我正在使用 SSL 构建和测试一个 aspnet 核心应用程序。在 IIS Express 中运行该站点可以正常工作。所以,我想我可能会看到让它在 IIS 10 上运行所需的条件。正如预期的那样,存在一些问题。
首先,我需要澄清一下,我已在 IIS 中成功托管了一个非 SSL aspnet 应用程序,因此 aspnet 核心应用程序所需的所有位都在那里。但是对于 SSL 应用程序,我得到的只是浏览器中的一条消息,指出发生了错误。在网络服务器日志中也没有任何用处。
所以,我的第一个测试是尝试使用 dotnet xxx.dll 直接在已发布文件夹中运行应用程序。这时候我注意到了授权错误。
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
【问题讨论】:
-
如果您在 IIS 中没有为该站点设置 ssl 证书,则应该这样做。
-
我设置了一个由应用程序池使用的自签名证书 - 无托管代码。无论如何,此时错误甚至不涉及 IIS。该错误是由使用 Kestrel 网络服务器的核心应用程序引发的。
-
我现在已经用 [Allow Anonymous] 属性装饰了 Home Controller,但抛出了同样的错误。
-
当它尝试在没有端口的情况下重定向到 localhost 上的 ssl 时,正在发生错误。我怀疑您的本地 ssl 证书是否绑定到本地主机,即 IIS 中的默认网站。 ssl 未附加到应用程序池,它位于 IIS 中站点的绑定中。我会先在 IIS 中使用 ssl 和静态 html 文件对其进行测试,以确保
-
正如我之前提到的,上面的截图是我在运行 dotnet xxx.dll 命令(在部署文件夹中)时遇到的错误。我的理解是 Kestrel Web 服务器正在引发错误。此时 IIS 甚至没有运行。也许需要通知 Kestrel 证书。我认为是错误的原因。我需要了解的是如何通知 Kestrel 证书。如果该问题得到解决,我可以进入下一阶段,将 IIS 用作反向代理服务器。
标签: iis asp.net-core iis-8