繁体   English   中英

VS2010中的文件不存在异常

[英]File Does Not Exist Exception in VS2010

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

我很好奇它是什么,因此尝试使用网站和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)

确定哪个文件不存在的技巧是在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(); 
}

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

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

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

我在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

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

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

抢。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM