Загадочная ошибка «Файл не существует» (в коде, не связанном с каким-либо видом файлового ввода-вывода) в global.asax - PullRequest
1 голос
/ 14 октября 2010

Я получаю сообщение об ошибке «Файл не существует».В моем приложении ASP.NET.Это странно, хотя.

Во-первых, нигде нет кода ввода-вывода файлов - я ничего не делаю с файлами, когда это происходит.

Кроме того, это происходит в самой последней закрывающей фигурной скобке Application_Error() метод в global.asax (это тот, в который вы помещаете код для обработки необработанных исключений).Это верно: это не происходит в операторе throw или какой-либо строке значимого кода, но прямо в последней фигурной скобке .

TargetSite:

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

Что выглядит для меня как нечто внутреннее в ASP.NET (нетМетод GetFileInfo () в моем решении).

StackTrace только:

в ASP.global_asax.Application_Error (Отправитель объекта, EventArgs e) в c: \ Subversion \ ConfApp \Website \ Global.asax: строка 36 в System.EventHandler.Invoke (отправитель объекта, EventArgs e) в System.Web.HttpApplication.RaiseOnError ()

, из которого я не могу получить никаких подсказок.

Другие подробности:

  • Я пытаюсь разрешить конфликты между jQuery 1.4 (и jquery UI) и MS ASP.NET AJAX 4 в этом приложении намомент

  • Это началось после того, как я обновил приложение с .net 2.0 до .net 4 и visual studio 2010.

Есть идеи, как я могу начать изучать это?

Обновление:
Вскоре после публикации я удалили повторно добавил пользовательский интерфейс jquery (включая .js, .css и изображения).Пока, похоже, это исправило это.Не уверен, как JS-библиотека на стороне клиента может вызвать ошибку в Global.asax.Однако добавлю это в качестве ответа, если ошибка не появится снова в ближайшее время ...

Ответы [ 3 ]

4 голосов
/ 08 июня 2011

В методе ApplicationError проверьте Request.CurrentExecutionFilePath. CurrentExecutionFilePath должен указывать, какой файл был запрошен.

Проверка этого свойства помогла мне определить, что Chrome автоматически запрашивает "/favicon.ico." Если иконка отсутствует, вы получите «Файл не существует», даже если страница загружается просто отлично. Кстати, IE и FF ведут себя не так.

1 голос
/ 05 октября 2011

Используя предложение Перри проверить Request.CurrentExecutionFilePath в Application_Error, я обнаружил, что мое приложение ASP.Net не может найти файлы 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">
1 голос
/ 15 октября 2010

Через день, и проблема, похоже, исчезла.

Я удалил и заново добавил jquery UI (включая .js, .css и изображения). Пока, похоже, это исправило это. Очень странно.

...