我在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会正确加载内容。
我已经做了以下没有解决问题的尝试:
在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"));
}
}
有人能想出一些线索吗?在此先感谢:)
答案 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>
到目前为止它看起来不错,但我会密切关注应用程序的行为。