VS2010中的文件不存在异常

时间:2010-06-27 21:14:09

标签: c# .net-3.5 visual-studio-2010 windows-7-x64

我已经从其他人手中接管了一个网站的代码,并且遇到了每次加载页面时遇到的问题,我在全局的Application_Error处理程序中捕获到了“File Does Not Exist”异常.asax文件。

我很好奇它是什么,因此尝试使用网站和Web应用程序创建全新的解决方案,无论是否有母版页和单个.aspx页面 - 两者都有同样的问题。

这是在Windows 7 64位上使用VS2010和.NET 3.5。

有什么想法吗?堆栈跟踪告诉我什么都没有,而且我用新项目获得它的事实很奇怪。

异常堆栈跟踪:

at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

5 个答案:

答案 0 :(得分:10)

确定哪个文件不存在的技巧是在Application_Error方法中使用以下代码。

protected void Application_Error(Object sender, EventArgs e)
{
  Exception ex = Server.GetLastError().GetBaseException();
  string file = HttpContext.Current.Request.Url.ToString();
  string page = HttpContext.Current.Request.UrlReferrer.ToString(); 
}

这将检索缺少的文件的名称以及请求来自的原始页面。

答案 1 :(得分:3)

例外中的文件名是什么?如果文件名或路径被混淆,那么您可能在ASP.NET临时文件中有损坏。尝试“清洁解决方案”和“重建解决方案”并再次运行。

否则,您需要发布更多信息,包括完整的异常消息,而不仅仅是调用堆栈。这是否发生在网站的默认页面上?是否将Web项目选为启动项目?这是在Visual Studio Web服务器或IIS吗?

中发生的

答案 2 :(得分:2)

我在gloal.asax中的Application_Error中检测到我的错误我也得到Request.Url.ToString(),这会给你罪魁祸首资源。例如,在我的应用程序中,我发现Application_Error甚至抱怨了favicon.ico,如果你有一些文件丢失,你可能会从你的css引用它,它会被Application_Error事件捕获。

实际上,请查看此博客,例如,讨论相同的问题并使用Request.Url来发现有问题的资源。这应该有助于http://dotbert.loedeman.nl/httpexception-file-does-not-exist

答案 3 :(得分:1)

我从来没有陷入过这种悲伤的底层,而且我的计算机已经过期重建了它。

答案 4 :(得分:1)

我为我的情况解决了这个问题......结果是项目属性已经恢复为“使用当前页面”(在VS 2010中 - 项目属性|开始选项|开始操作)。

奇怪的是,我已经将“开始选项”设置为“特定页面:” - 因此沿着VS 2010的某个位置丢失了它并且默认返回“使用当前页面”。

罗布。