我们刚发现我们的新“云”托管存在问题。 基本上,NAT /端口转发已配置,因为它们不允许多个内部IP,因此可以为多个站点完成SSL证书。MVC3生成包含端口号的URL,如何阻止它
这会导致在指定协议时生成的任何MVC路由出现问题。 此外,如果尝试去一个需要登录的URL,重定向的https登录URL中的ReturnUrl参数也有端口号码。
问题是 - 有什么方法可以告诉MVC永远不会包含即使存在端口号,也不会使用UrlHelpers操作/路由方法重载,从而允许您指定域并因此手动剥离端口号。
在情况不是很明显从上面的什么请求的过程是这样,这里有一个小例子:
- 用户浏览器发出请求,网站
- 服务器转发相同的URL,但与附加 端口号
- 生成页面
- 将响应发回给用户浏览器。
- 用户登录,但现在返回的URL具有端口,因此重定向时用户获取页面无法显示。
由于端口转发malarkey,这似乎导致MVC路由变得混乱。 不知道技术服务器端如此好我不确定它是否只是托管公司不配置在IIS或NAT的东西正确的东西或是否只是一些web.config的东西,需要配置,以使MVC生成正确的URLs就好像这个端口malarkey不存在一样。
任何提示或指针最受赞赏。
呃,如果你有客户端脚本,那也将是一个头痛的问题。也许在[服务器故障](http://serverfault.com/)的人可以帮助在配置方面..对我来说,我不明白为什么端口被附加在第一位 - 是“切换“443”和“80”(http/s)? – EdSF 2014-09-01 16:45:20
不,这是因为您有一台托管多个站点的服务器,但出于SSL证书的目的,它需要一个IP地址,并且您不能为多个域注册相同的IP地址。由于云服务器上只允许有一个内部IP,因此使用端口号进行转发是唯一的办法,但这会导致上述问题。然而,看到我自己的答案 - 唷! – Peter 2014-09-03 14:25:26