【问题标题】:Automatic IIS6 403.4 redirect to SSL not working自动 IIS6 403.4 重定向到 SSL 不起作用
【发布时间】:2010-12-24 14:01:16
【问题描述】:

我的 ASP.Net 网站中有一个目录,我需要启用 SSL。对于所有其他目录,我不想启用 SSL。

使用 IIS,我为我想要使用 SSL 的文件夹选中了需要安全通道 (SS) 和 128 位加密复选框。

现在,当用户输入“http://”时,对于我的安全目录,我想自动将他们重定向到“https://”。我尝试了两种方法,都失败了。

方法 1:将 403;4 目录的 IIS 自定义错误页面更改为指向“/Intranet2/SSLRedirect.aspx”的 URL。 SSLRedirect 会将它们指向正确的站点。当我这样做时,我收到“无法从当前应用程序池执行指定的请求”错误,即使该 url 是网站的一部分并且我只有一个用于整个网站的应用程序池(不是 DefaultAppPool)。

方法2:在目录中添加web.config,覆盖403错误码。看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <customErrors defaultRedirect="../Default.aspx" mode="On">
            <error statusCode="403" redirect="../SSLRedirect.aspx" />
        </customErrors>
    </system.web>
</configuration>

但是当我进行此更改时,我总是得到 IIS 中定义的默认 403.4。

有什么建议吗?

【问题讨论】:

    标签: asp.net ssl http-status-code-403


    【解决方案1】:

    方法 1:您似乎错误地认为您只为整个网站配置了一个应用程序池。您可能有一个用于默认站点,另一个用于您正在使用的虚拟目录。您的选择是:

    a) 重新配置它,以便您确实为整个网站只有一个应用程序池,

    b) 从与生成错误的页面位于同一应用程序池的目录中提供错误页面

    c) 调整注册表以关闭此错误:在 HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 中将 IgnoreAppPoolForCustomErrors 设置为 1。见http://blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx

    方法 2:web.config 中的自定义错误仅在 asp.net 处理错误时使用。我相信 IIS 没有在这里使用 asp.net 处理引擎,因为 ssl 检查失败。所以这在这里根本行不通。

    【讨论】:

      猜你喜欢
      • 2012-05-29
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      相关资源
      最近更新 更多