2009-08-25 77 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