Не удается опубликовать веб-сайт для некоторых страниц - PullRequest
0 голосов
/ 15 сентября 2008

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

Как правило, 3 папки ниже проекта веб-сайта не публикуются должным образом. Когда PrecompiledWeb передается на хост, эти три папки должны быть вручную скопированы из проекта Visual Studio (т.е. они больше не являются опубликованными версиями) на хост, чтобы он работал.

Если оставить результаты операции публикации, любая страница в папке приведет к следующей ошибке:

Ошибка сервера в «/» приложении. Невозможно привести объект типа 'System.Web.Compilation.BuildResultNoCompilePage' печатать 'System.Web.Compilation.BuildResultCompiledType. Описание: необработанное исключение произошло во время исполнения текущий веб-запрос. Пожалуйста, просмотрите трассировка стека для получения дополнительной информации о ошибка и откуда она возникла код.

Сведения об исключении: System.InvalidCastException: невозможно литой объект типа 'System.Web.Compilation.BuildResultNoCompilePage' печатать 'System.Web.Compilation.BuildResultCompiledType'.

Ошибка источника:

Создано необработанное исключение во время исполнения текущего веб-запрос. Информация относительно Происхождение и место исключения можно определить с помощью исключения трассировка стека ниже.

Трассировка стека:

[InvalidCastException: невозможно кастовать объект типа 'System.Web.Compilation.BuildResultNoCompilePage' печатать 'System.Web.Compilation.BuildResultCompiledType'.] System.Web.UI.PageParser.GetCompiledPageInstance (VirtualPath virtualPath, String inputFile, Контекст HttpContext) + 254
System.Web.UI.PageParser.GetCompiledPageInstance (String virtualPath, String inputFile, Контекст HttpContext) + 171
URLRewrite.URLRewriter.ProcessRequest (HttpContext контекст) + 2183
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +405 System.Web.HttpApplication.ExecuteStep (IExecutionStep шаг, логическое и завершено синхронно) + 65

Информация о версии: Microsoft .NET Версия Framework: 2.0.50727.832; ASP.NET версия: 2.0.50727.832

Кто-нибудь знает, каковы возможные причины неправильной публикации этих страниц? Что-нибудь, на что я могу посмотреть, может указать на корень проблемы?

Дополнительно: Это абсолютно чистая сборка каждый раз, поэтому не должно быть проблем со старыми файлами bin. Я также проверил отметку даты на элементах в папке bin, и они обновлены.

Второе дополнение: Первоначально проект был создан как веб-сайт , а не как веб-приложение. Извините за двусмысленность.

Ответы [ 5 ]

1 голос
/ 15 сентября 2008

Возможно, вы попробуете Microsoft Web Deployment Projects . По сути, они дают вам гораздо больший контроль над MSBuild, но это может помочь решить ваши проблемы развертывания / предварительной компиляции.

Должны ли мы сделать вывод, что вы используете тип проекта веб-сайта (а не веб-приложение)?

1 голос
/ 16 сентября 2008

Я предполагаю, что потому что, когда вы публикуете, он компилирует ваш проект веб-сайта, и он сталкивается с дублирующим именем класса где-то в разных папках или подпапках. Убедитесь, что вы проверили свои теги наследования и имена классов, чтобы не называть 2 класса одинаковыми. Это нормально и не приводит к ошибке, когда это происходит в разных папках при кодировании и отладке, но при переходе на публикацию / развертывание произойдет ошибка. ... Надеюсь, это имеет смысл.

0 голосов
/ 16 августа 2015

Лучший ответ на этот вопрос, пожалуйста, откройте файл web.config и добавьте два параметра ниже в тег компиляции

<compilation targetFramework="4.0" debug="false" batch="false">

Keep coidng, также я попытался выполнить следующие действия, когда я получил ту же ошибку в моем приложении, которую я пытался разместить на сервере

1.Нажмите Пуск, нажмите Выполнить, введите iisreset / stop и нажмите кнопку ОК.

2.Откройте каталог C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files.

3.Удалите все файлы и все папки в каталоге, который вы нашли в шаге

4.Нажмите Пуск, выберите Выполнить, введите iisreset / start и нажмите кнопку ОК.

5.Снова выполните сборку и попробуйте получить доступ к своему сайту.

0 голосов
/ 14 июля 2009

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

Помимо просмотра проектов веб-развертывания , вам также следует установить для многословия значение Diagnostic (Инструменты => Параметры => Проект и решения => Построить и выполнить => Msbuild - подробность сборки проекта)

Это, в моем случае, привело к отображению значимых ошибок компилятора, которые помогли мне решить проблему.

Затем можно также запустить aspnet_compiler с директивой -errorstack в приглашении оболочки для отображения дополнительных ошибок.

0 голосов
/ 15 сентября 2008

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

РЕДАКТИРОВАТЬ: Миграция КАК сюда

...