У меня есть веб-сайт 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 и важно ли это?
Я также хочу упомянуть, что эта проблема появилась внезапно, и я не уверен, какие изменения можно было сделать, поскольку она работала должным образом несколько дней назад (но, насколько мне известно, нет).