2009-08-25 112 views
1

我正在使用Asp.net 3.5 MVC開發電子商務應用程序。 在我的車查看我結賬按鈕重定向到同一個控制器上檢出動作:ASP.Net MVC RedirectToSsl問題

<%= Html.ActionLink("CheckOut", "CheckOut") %> 

我的控制器看起來是這樣的:

[RequireSsl(Redirect=true)] 
    public ActionResult CheckOut() 
    { 
     return View(); 
    } 

但是,當我點擊結賬的URL 似乎是正確的: (見更新)https://localhost/Cart/CheckOut,但我得到以下錯誤:

Data Transfer Interrupted 

The connection to localhost was interrupted while the page was loading. 
The browser connected successfully, but the connection was interrupted while transferring information. Please try again. 

任何想法我做錯了什麼?

UPD:實際上在重定向後,端口號消失了。 (我正在使用ASP.Net開發服務器)。但即使在地址欄中輸入正確的url也會產生相同的錯誤

+2

你有沒有IIS7可用? (Vista和Win7)我建議設置你的網站,並在80端口上提供一個自簽名證書...我還沒有用內置的VS Web服務器處理https,但假設它是'會有問題的。 – Charlino 2009-08-25 20:36:41

+1

短而甜蜜的答案... VS Web服務器(也卡西尼)很爛。它不支持SSL,一次只能運行一個線程,並且它是VS中的默認服務器。微軟認真需要改進它,但是,IIS是他們不這麼做的明顯原因。無論哪種方式,您都應該考慮使用IIS來調試您的解決方案。 – 2009-08-26 08:36:09

回答

1

IIS中的站點設置是否正確?如果不是,那可能是問題。我不相信Visual Studio Debugger支持SSL。

+1

你是對的。 ASP.NET開發服務器未設置爲處理SSL。在Vista或Windows 7中使用IIS要好得多。 – 2009-08-26 08:30:21

+0

謝謝,我試圖在ASP.NET Development Server中運行這個功能。 我還沒有準備好將它部署到IIS7,但希望它能工作... 有什麼辦法可以配置ASP.NET開發服務器忽略SSL請求嗎? – 2009-08-26 13:54:54

+0

我不知道如何讓ASP.NET開發服務器忽略SSL請求。我通常做的是自定義SSL重定向(通常在基本控制器中),我可以使用「EnableSSL」之類的Web.config設置進行控制 - 然後,當您部署到生產環境或測試服務器時,只需打開EnableSSL - - 如果您正在本地開發,請關閉EnableSSL。希望有所幫助! – xeb 2009-08-26 15:57:24