ASP.NET Forms应用程序显示空白" default.aspx"页面偶尔而不是加载/显示内容

时间:2016-06-08 09:22:37

标签: c# asp.net default-document

我在Windows 2008 Server R2 Standard中有一个ASP.NET Forms应用程序,Framework 4.5版,IIS 7.5。我偶尔会得到一个空白页面(截图如下)。当我在IIS中重置网站时问题得到解决..但是在2/3天后再次发生。 Web.config文件包含" default.aspx"在顶部作为默认文档。

在我的应用程序中,default.aspx是一个在应用程序启动时创建的空文件 - 不包含任何代码/内容。我的猜测是IIS将空白页保留在缓存中并有时提供空白页。解决方案中的所有其他页面都是没有物理存在的虚拟页面。但是,点击其他URL会正确加载内容。

我已经做了以下没有解决问题的尝试:

  1. IIS输出缓存 - 防止用户模式和内核模式的所有缓存。
  2. 在Global.asax中添加了以下代码块,以解决加载默认文档的问题

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {
      var app = (HttpApplication)sender;
      if (app.Context.Request.Url.LocalPath.EndsWith("/"))
      {                   
      app.Context.RewritePath(string.Concat(app.Context.Request.Url.LocalPath, "default.aspx"));
      }
    }
    
  3. 有人能想出一些线索吗?在此先感谢:)

    Screenshot of the blank page

1 个答案:

答案 0 :(得分:0)

我认为问题的出现是因为应用程序的设计方式与虚拟页面有关。有一个" default.aspx"应用程序中的虚拟页面以及根文件夹中具有相同名称的静态文件(只是一个空文件)。我最好的猜测是处理程序有时会提供静态页面而不是虚拟页面,因此会显示空白屏幕。

我已经在我用index.html替换静态文件default.aspx的地方部署了一个工作。为了确保在加载index.html文件时重定向到默认页面,请添加以下代码:

    <meta charset="UTF-8">
    <meta http-equiv="refresh" content="0; url=default.aspx" />

    <script>
        window.location.href = "default.aspx";
    </script>

到目前为止它看起来不错,但我会密切关注应用程序的行为。