2

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

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

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

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

方法二:在目录中添加一个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。

有什么建议么?

4

1 回答 1

0

方法 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 检查失败。所以这在这里根本行不通。

于 2011-02-18T18:58:25.420 回答