Как исправить ошибку ASP.NET «Файл nnn.aspx не был предварительно скомпилирован и не может быть запрошен.»? - PullRequest
40 голосов
/ 02 марта 2009

У меня есть веб-сайт VS 2005, который я публикую с помощью «Публикация веб-сайта», и я снимаю все три флажка. У меня также есть проект развертывания, который выбирает опубликованные файлы и создает MSI. Затем я устанавливаю пакет на отдельном тестовом сервере.

Другими словами, весь сайт предварительно скомпилирован. Однако при переходе к любому файлу .aspx в определенной подпапке с именем «Services» я получаю HttpException:

System.Web.HttpException: файл '/myapp/Services/mypage.aspx' не был предварительно скомпилирован и не может быть запрошен.

Если я перехожу к файлу .aspx в другой папке, будь то корневая папка или другая подпапка, она работает правильно.

Содержимое самого mypage.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="Services_mypage" %>"

В папке /myapp/bin я вижу файл mypage.aspx.989dc2fb.compiled. Кажется, что содержание этого указывает на определенную сборку, которая также присутствует в папке bin.

Почему происходит эта ошибка? Файл .compiled находится там, и там есть сборка, и рассматриваемый тип присутствует в этой сборке (я вижу это в Обозревателе объектов). Это связано с именем или содержимым .compiled-файла? У меня как-то не та версия? Что означает, казалось бы, случайное число в имени файла .compiled и важно ли это?

Я также хочу упомянуть, что эта проблема появилась внезапно, и я не уверен, какие изменения можно было сделать, поскольку она работала должным образом несколько дней назад (но, насколько мне известно, нет).

Ответы [ 24 ]

1 голос
/ 25 октября 2016

У меня был сценарий, который удаляет рабочую папку, а затем копирует новые файлы.

Сценарию не удалось правильно удалить рабочую папку, в результате чего старые и новые файлы были смешаны вместе, что привело к ошибке.

Я вручную удалил всю папку и успешно развернул ее ... затем обновил скрипт.

1 голос
/ 11 сентября 2014

Начните с проверки свободного места на диске. Я получил эту ошибку, когда нам не хватило места на жестком диске, на котором размещены IIS.

1 голос
/ 28 января 2011

Перераспределение тех же файлов также исправило эту проблему в моем случае.

Так что, может быть, прежде чем пытаться что-то еще, сначала попробуйте развернуть приложение снова (достаточно содержимого папки bin)

Кстати: в моем случае ошибка началась, когда на диске C не хватает места.

Удачного кодирования! ChiTec

1 голос
/ 12 декабря 2011

Я знаю, что ошибка - это жалоба на что-то другое, но я обещаю, что в моем случае проблема заключалась в недостаточном разрешении доступа (идентификация сетевой службы или пула приложений или IUSR) для работы учетной записи asp.net этот конкретный файл.

это произошло из-за необычного развертывания и смешивания файлов bin с новыми опубликованными файлами в нашей среде VPS.

решение

что определенные права доступа к файлам должны быть заменены правильными разрешениями папки Bin, как и другие файлы, которые работают правильно (и с этой ошибкой) внутри Bin.

enter image description here

0 голосов
/ 27 сентября 2013

В моем случае я не загружал общие библиотеки DLL, такие как AjaxControlToolkit.dll, Telerik.dll и т. Д. Я загрузил всю опубликованную папку, и она исправила это для меня.

0 голосов
/ 08 марта 2017

Эта ошибка также может возникать, если у вас есть файл .compiled в bin для страницы, которая больше не является частью вашего проекта. Вы получаете это вместо 404 по существу. Удалите .compiled файл, и вы получите 404.

0 голосов
/ 02 марта 2016

У меня была такая же проблема, когда я начал использовать VWD Express 2012 (после того, как я использовал Express 2010, который работал нормально) Пошел на мои панели управления хостингом и изменил версию ASP.NET с 2.0-Classic на 4.0 Classic, как показано. Проблема исчезла.

image

0 голосов
/ 14 мая 2015

Наконец-то я нашел проблему. Если вы используете MVC-фреймворк, как я, пожалуйста, обновите вашу версию MVC. В моем случае я изменил MVC 4.0.0.0 на 4.0.0.1 и проверил все свойства ссылок проекта на «Local Copy» на «True». После этого моя проблема решена. Пожалуйста, проверьте версию MVC во всем конфигурационном файле (4.0.0.0-> 4.0.0.1)

И следите за предупреждающими сообщениями компилятора asp.

0 голосов
/ 10 апреля 2014

В моем случае ошибка для представления бритвы asp.net mvc (.cshtml), папка / bin содержала два .compiled файла для одного и того же представления. Один из них был старым, и его нужно было удалить.

У меня также было второе представление в подпапке представлений контроллера, которое также необходимо было удалить.

Причиной проблемы является то, что я переместил представление из подпапки представлений контроллера в общую папку, однако мой процесс развертывания (публикация Visual Studio) не удалил устаревшие файлы представления и view.compiled с сервера. Вы можете указать Visual Studio всегда очищать папку назначения, но это замедлит процесс развертывания.

0 голосов
/ 08 сентября 2017

В моем случае файл nnn.aspx.xxxxxxxx.compiled был удален WebDeploy, потому что я выполнил 2 одновременных задания в одной рабочей области Jenkins. Второе задание удалило некоторые файлы во время создания пакета WebDeploy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...