Как исправить ошибку 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 ]

0 голосов
/ 07 октября 2010

Я столкнулся с этой проблемой, когда развернул некоторые изменения на моем существующем сайте.

Чтобы устранить проблему, я удалил все файлы из папки bin и заново развернул их.

Проблема решена.

Надеюсь, это кому-нибудь поможет.

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

Если вы получаете эту ошибку при запуске сценария MSBuild, есть вероятность, что ваш проект является проектом 2.0 или 3.5, а MSBuild использует компилятор 4.0. Попробуйте добавить TargetFrameworkMoniker = "3.5" в ваши директивы AspNetCompiler.

0 голосов
/ 30 апреля 2018

Это решение для VS 2008.

Установите флажок, как показано ниже, чтобы решить проблему.

enter image description here

0 голосов
/ 12 декабря 2013

В случае обновления, а затем перекомпилировать. снова скопируйте все файлы из папки bin, а также обновите конкретный файл из соответствующей папки.

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