删除Global.asax仍然执行代码

时间:2012-12-17 16:25:52

标签: c# web seo

我正在运行一个asp.net网络应用程序,对于搜索引擎优化,我希望我购买的任何域名301重定向到我的首选域名。

出于测试目的,我在我的localhost项目中添加了一个Global.asax页面,并添加了以下代码:

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e) 
{ 
  string currentUrl = HttpContext.Current.Request.Url.ToString();
  if(!currentUrl.StartsWith("http://www.mydomain.org")) 
  { 
    string strStart = currentUrl.Substring(0, currentUrl.indexOf(@"/Pages"));
    Response.Status = "301 Moved Permanently"; 
    Response.AddHeader("Location", currentUrl.Replace(strStart, "http://www.mydomain.org")); 
    Response.End(); 
  } 
}

我用我当前的一个域名替换了“http://www.mydomain.org”。这一切都按照我的意愿运行。但是,现在当我从.asax文件中删除该代码,甚至完全删除asax文件时,仍会运行该代码片段。因此,有效地运行我的localhost项目会打开我的在线网站,我无法阻止这种行为。

我做了以下事情:

  • 在“Temporary ASP.NET Files”文件夹中删除了所有内容
  • 删除了我/ bin文件夹中的.dll和整个/ obj文件夹
  • 清理并重建我的解决方案。
  • 创建了一个全新的解决方案,然后向其中添加了文件。这首先工作,但添加Global.asax文件时会出现相同的行为。

虽然这是我最终想要的行为,但我想在第一次实现它之后运行,调试和编辑它。我以前见过同样的问题,但似乎是通过上述方法之一修复的。请帮忙!

1 个答案:

答案 0 :(得分:3)

您的问题与您的代码无关。这是你正在努力的301的缓存。

301的缓存可能发生在您的请求通过的许多地方,从您的浏览器开始,由于这个原因,行为可能变得无法预测