Файл не существует исключение в VS2010 - PullRequest
9 голосов
/ 28 июня 2010

Я принял код веб-сайта от кого-то еще, чтобы завершить работу, и столкнулся с проблемой, заключающейся в том, что каждый раз, когда я загружаю страницу, я получаю исключение «Файл не существует», возникающее в обработчике Application_Error в моем глобальном .asax файл.

Мне было любопытно, что это было, поэтому я попытался создать совершенно новые решения как с веб-сайтом, так и с веб-приложением, как с главной страницей, так и без нее, и с одной страницей .aspx - у обеих была одна и та же проблема.

Используется VS2010 и .NET 3.5 в 64-разрядной версии Windows 7.

Есть идеи, пожалуйста? Трассировка стека абсолютно ничего мне не говорит, и тот факт, что я получаю его с новыми проектами, странен.

Трассировка стека исключений:

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 ]

10 голосов
/ 06 декабря 2011

Хитрость в выяснении того, какой файл не существует, заключается в использовании следующего кода в методе 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(); 
}

Это позволит получить имя отсутствующего файла и исходную страницус которого пришел запрос.

3 голосов
/ 28 июня 2010

Какое имя файла в исключении?Если имя файла или путь скрыты, вероятно, во временных файлах ASP.NET имеется повреждение.Попробуйте «очистить решение» и «пересобрать решение» и запустите его снова.

В противном случае вам потребуется опубликовать дополнительную информацию, включая полное сообщение об исключении, а не только стек вызовов.Это происходит на странице сайта по умолчанию?Веб-проект выбран в качестве запуска проекта?Это происходит на веб-сервере Visual Studio или IIS?

2 голосов
/ 20 мая 2011

Я обнаружил свою ошибку в Application_Error в gloal.asax. Я также получаю Request.Url.ToString (), это даст вам ресурс-виновник. Например, в моем приложении я обнаружил, что Application_Error даже жалуется на favicon.ico, а также, если у вас отсутствуют некоторые файлы, на которые вы, возможно, ссылаетесь из своего css, он будет пойман событием Application_Error.

на самом деле, посмотрите этот блог, например, рассказывает о той же проблеме и, используя Request.Url, узнаете, что это за ресурс. Это должно помочь http://dotbert.loedeman.nl/httpexception-file-does-not-exist

1 голос
/ 13 апреля 2012

Я решил это для своей ситуации ... оказалось, что свойства проекта вернулись обратно к «Использовать текущую страницу» (в VS 2010 - Свойства проекта | Параметры запуска | Действие запуска).

НечетныйДело в том, что я установил параметры запуска на «Определенную страницу:», поэтому где-то вдоль линии VS 2010 потерял ее и по умолчанию вернулся к «Использовать текущую страницу».

Роб.

1 голос
/ 27 февраля 2011

Я так и не дошел до этого, к сожалению, и просроченная перестройка моего компьютера разобрала его.

...