我有一个在Windows Azure网站上运行的ASP.NET MVC应用程序。
网站突然开始将主页网址'/'重定向到自身,导致重定向循环。在事件发生时,应用程序没有进行任何更改,日志文件中不包含任何可疑信息 - 只是很多类似的请求
2014-01-09 09:00:05 SITE_NAME GET / X-ARR-LOG-ID=581f1d91-727a-4820-a7fa-7c21888b5813 80 - 193.85.68.249 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)+;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) _ga=GA1.2.720579394.1386747761;+ARRAffinity=12ae470da6bd7ab5a7c446a8f29748ba5f73605e7fcd365292d61319cb67336f;+WAWebSiteSID=654ed6b99c9747759561e52c1f2cb0f8 - www.domain.cz 301 0 0 534 1069 31
2014-01-09 09:00:05 SITE_NAME GET / X-ARR-LOG-ID=3ddebc99-c083-4cbf-9bbe-90d755a8b1a0 80 - 193.85.68.249 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)+;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) _ga=GA1.2.720579394.1386747761;+ARRAffinity=12ae470da6bd7ab5a7c446a8f29748ba5f73605e7fcd365292d61319cb67336f;+WAWebSiteSID=654ed6b99c9747759561e52c1f2cb0f8 - www.domain.cz 301 0 0 534 1073 0
当我重新启动Azure网站时,一切都恢复正常。同样的问题第三次出现,所以它可能不仅仅是服务器的“打嗝”。
有人可以帮我解决问题吗?我有点迷茫,因为服务器日志和应用程序日志都不包含任何有用的信息。
答案 0 :(得分:3)
您可以使用Application_BeginRequest在非www url到www url之间全局路由。
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (!Request.Url.Host.StartsWith("www"))
{
UriBuilder builder = new UriBuilder (Request.Url);
builder.Host = "www." + Request.Url.Host;
Response.Clear();
Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", redirectUrl);
Response.End();
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
我已经回答了here
但是因为我在调查中越过了这篇文章,我想在这里分享......
我的一个Azure网络应用程序遇到了这个问题,该应用程序通过http提供流量。
我的解决方案是禁用关联cookie。
如果我有一个应用程序,需要在1台服务器上维护用户会话,我将不得不重新启用关联cookie,但因为这导致我(间歇性)问题,我也会强制所有流量到https,因为这似乎是一个更成功的设置与Affinity cookie一起使用。
此链接非常有用且背景信息很丰富:https://azure.microsoft.com/en-us/blog/disabling-arrs-instance-affinity-in-windows-azure-web-sites/
答案 3 :(得分:0)
我意识到这已经过时了。但在我的情况下,这是由于代码中的错误。
要获得真正的错误,我必须在web.config中更改此内容
<customErrors mode="RemoteOnly" defaultRedirect="/Error/Index" />
到此
<customErrors mode="Off" />
然后告诉我