1

我收到“文件不存在”错误。在我的 ASP.NET 应用程序中。不过,这是一个奇怪的问题。

首先,任何地方都没有文件 IO 代码——当它发生时,我没有对任何文件做任何事情。

此外,它发生在 global.asax 中 Application_Error() 方法的最后一个右花括号上(这是您放入代码以处理未处理异常的那个)。没错:它不会出现在 throw 语句或任何有意义的代码行上,而是出现在最后一个花括号上

目标站点是:

{System.IO.FileInfo GetFileInfo(System.String, System.String, System.Web.HttpResponse)}

在我看来,这就像 ASP.NET 内部的东西(我的解决方案中没有 GetFileInfo() 方法)。

StackTrace 只是:

在 ASP.global_asax.Application_Error(Object sender, EventArgs e) in c:\Subversion\ConfApp\Website\Global.asax:line 36 at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Web.HttpApplication.RaiseOnError ()

我无法从中得出任何线索。

其他详情:

  • 我目前正在尝试解决此应用程序中 jQuery 1.4(和 jquery UI)与 MS ASP.NET AJAX 4 之间的冲突

  • 它是在我将应用程序从 .net 2.0 升级到 .net 4 和 Visual Studio 2010 之后开始的。

知道我如何开始研究这个吗?

更新:
发布后不久,我删除并重新添加了 jquery UI(包括 .js、.css 和图像)。到目前为止,看起来这已经修复了它。不确定客户端 JS 库如何在 Global.asax 中导致错误。但是,如果错误不会很快再次出现,则会将此添加为答案...

4

3 回答 3

4

在 ApplicationError 方法中,检查 Request.CurrentExecutionFilePath。CurrentExecutionFilePath 应指示请求的文件。

检查此属性帮助我确定 Chrome 会自动请求“/favicon.ico”。如果没有网站图标,即使页面加载正常,您也会得到“文件不存在”。顺便说一句,IE 和 FF 不这样做。

于 2011-06-08T14:43:37.317 回答
1

使用 Perry 的检查Request.CurrentExecutionFilePathin的建议,我发现我的 ASP.Net 应用程序在标签Application_Error中以前缀为前缀的文件夹中找不到 jQuery 文件。"~/"<script>

我在我的 MasterPage 标记中这样做:

<script src="~/Scripts/jquery-1.4.1.js" type="text/javascript">

当我应该这样做时:

<script src="Scripts/jquery-1.4.1.js" type="text/javascript">
于 2011-10-05T15:07:08.770 回答
1

一天后,问题似乎消失了。

我删除并重新添加了 jquery UI(包括 .js、.css 和图像)。到目前为止,看起来这已经修复了它。很奇怪。

于 2010-10-15T00:30:12.227 回答