質問

ASP.NET Webサイトには、SSLを有効にする必要がある単一のディレクトリがあります。他のすべてのディレクトリについては、SSLを有効にしたくありません。

IISを使用して、SSLを要求するフォルダーの必要なセキュアチャネル(SS)と128ビット暗号化チェックボックスをチェックしました。

これで、ユーザーが「http://」を入力すると、Secureディレクトリの場合、自動的に「https://」にリダイレクトします。私は2つのアプローチを試しましたが、両方とも失敗しました。

アプローチ1:403のディレクトリのIISカスタムエラーページを変更します。 sslredirectは、それらを正しいサイトを指します。それを行うと、URLがWebサイトの一部であり、Webサイト全体に1つのアプリプールしか持っていない場合でも、「現在のアプリケーションプールから指定されたリクエストを実行できません」エラーを取得します。

アプローチ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を常に取得します。

助言がありますか?

役に立ちましたか?

解決

アプローチ1:Webサイト全体に設定されたアプリプールは1つだけであると考えるのは間違っているようです。おそらく、デフォルトのサイト用に1つ、もう1つは使用している仮想ディレクトリ用です。あなたの選択は次のとおりです。

a)サイト全体にアプリプールを1つだけ持っているように、再構成してください。

b)エラーを生成するページと同じアプリプールにあるディレクトリからエラーページを配信します

c)レジストリを微調整してこのエラーをシャットダウンします。IngReAppPoolForCustomErrorsをHKLM System currentControlset Services W3SVC パラメーターで1に設定します。見る http://blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx

アプローチ2:web.configのカスタムエラーは、ASP.NETがエラーを処理している場合にのみ使用されます。 SSLチェックが失敗したため、IISはここでASP.NETハンドリングエンジンを魅力的ではないと思います。したがって、これは単にここでは機能しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top