2009-12-08 121 views
2

我在我的ASP.Net網站有一個單獨的目錄,我需要啓用SSL。對於所有其他目錄,我不希望啓用SSL。自動IIS6 403.4重定向到SSL不起作用

使用IIS,我已經檢查了我想要求SSL的文件夾的Require安全通道(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。

有什麼建議嗎?

回答

0

方法1:您認爲您認爲您只有一個應用程序池配置爲整個網站是錯誤的。您可能有一個用於默認站點,另一個用於您正在使用的虛擬目錄。您的選擇要麼是:

一)重新配置它,這樣你確實對整個網站只有一個應用程序池,

b)擔任錯誤頁面出來的目錄是在同一個應用程序池的生成錯誤的頁面

c)調整註冊表以關閉此錯誤:在HKLM \ SYSTEM \ CurrentControlSet \ Services \ W3SVC \ Parameters中將IgnoreAppPoolForCustomErrors設置爲1。請參閱http://blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx

方法2:只有在asp.net處理錯誤時,纔會使用web.config中的自定義錯誤。我相信IIS不會使用asp.net處理引擎,因爲ssl檢查失敗。所以這根本不會在這裏工作。