2016-06-08 59 views
0

我在Windows 2008 Server R2 Standard中有一个ASP.NET Forms应用程序,Framework版本4.5,IIS 7.5。偶尔我会得到一个空白页面(下面的截图)。当我在IIS中重置网站时,问题得到解决..但是在2/3天内再次发生。 Web.config文件在顶部包含“default.aspx”作为默认文档。ASP.NET窗体应用程序零星地显示空白“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")); 
        } 
    } 
    

有人能想出一些线索?感谢提前:)

Screenshot of the blank page

+0

从控制面板 - >在窗口功能打开或关闭 - >互联网信息服务 - >普通http - >检查静态内容复选框,并验证所有复选框进行检查。 –

+0

@Nazir,谢谢你的回复。不能真正遵循你在2008年提到的服务器的路径。但是,我可以在网站的Handler Mapping列表底部看到处理程序名称StaticFile。 – shamal

+0

在运行命令类型(控制面板),然后点击卸载程序在右侧打开时选择“打开或关闭窗口功能”,然后弹出dailog打开“互联网信息服务” - >常见http功能 - >检查静态内容复选框 –

回答

0

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

我已经部署了一个工作,将静态文件default.aspx替换为index.html。只是可以肯定重定向到默认页面的情况下,index.html文件被加载,下面这段代码加:

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

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

到目前为止,它看起来不错,但我会留意的应用程序的行为。