Подтвердить что ты не робот

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

Я несколько раз создавал веб-сайт, используя по умолчанию "разрешить этот предварительно скомпилированный сайт обновлять", однако в самом последнем компиляторе сайт был очень сломан. После игры с DLL (удаление и замена их в корзине) я заметил, что некоторые части веб-сайта снова начали работать, но если я поместил все оригинальные .dll на сайт, был сломан.

Я использую aspx-страницы с несколькими расширениями Ajax. Они были добавлены недавно и могут быть источником проблемы. Я снял флажок "Разрешить этот предварительно скомпилированный сайт обновлять" и добавил в корзину все виды файлов скомпилированных кодов, и все проблемы с веб-сайтом исчезли... что здесь происходит? В чем разница?

Кажется, нет никакой разницы в том, как я обновляю сайт, просто каждый раз публикуюсь из Visual Studio.

Любые идеи будут оценены.

4b9b3361

Ответ 1

Снимите флажок "Разрешить этот предварительный скомпилированный сайт обновлять" компилирует страницы .Aspx, а не только файлы кода (.VB/.CS). Оставляя это, вы можете внести определенные изменения в файлы .Aspx после его развертывания без повторной компиляции (ex = переместить позицию элемента управления или добавить дополнительную HTML-разметку).

После прочтения описания проблем с развертыванием кажется более вероятным, что ошибки связаны с тем, что IIS нуждается в обновлении App Pool. На низкоуровневом VPS иногда бывает просто отскочить (перезапустить), если у вас есть эта роскошь.

Прочтите следующие статьи MSDN для получения дополнительной информации о предварительной компиляции сайта.

http://msdn.microsoft.com/en-us/library/399f057w(v=vs.80).aspx

http://msdn.microsoft.com/en-us/library/ms247286(v=vs.80).aspx

Ответ 2

У меня есть ответ на мои вопросы, основанный на том, что сказал NoAlias. Я прочитал две ссылки и нашел следующее:

Предварительная компиляция только для развертывания
Когда вы прекомпилируете развертывание только, компилятор производит сборки из практически всех ASP.NET исходные файлы, которые обычно компилируются во время выполнения. Это включает код программы на страницах,.cs и .vb файлы классов, другие файлы кода и файлы ресурсов. Компилятор удаляет весь источник и разметку из вывод. В результирующем макете скомпилированные файлы генерируются для каждого файлов .aspx(с расширением .compiled), которые содержат указатели на соответствующую сборку для этой страницы. Чтобы изменить Веб-сайт, включая макет страниц, вы должны изменить оригинал файлы, перекомпилировать сайт и перераспределить макет. Единственное исключение это конфигурация сайта; вы можете внести изменения в файл Web.config на производственном сервере без необходимости перекомпилировать сайт. Эта опция обеспечивает максимальную степень защиты ваших страниц и лучшая производительность при запуске.

Предварительная компиляция для развертывания и обновления
Когда вы прекомпилируете для развертывания и обновления, компилятор производит сборки из всего исходного кода (кроме кода страницы в однофайловые страницы) и из других файлов, которые обычно производят сборок, таких как файлы ресурсов. Компилятор преобразует файлы .aspx в отдельные файлы, которые используют скомпилированную модель кода и копии их к макету. Этот параметр позволяет вам вносить ограниченные изменения на веб-страницы ASP.NET на вашем сайте после их компиляции. Для Например, вы можете изменить расположение элементов управления, цветов, шрифтов, и другие аспекты внешнего вида страниц. Вы также можете добавить элементы управления, как поскольку они не требуют обработчиков событий или другого кода. Когда сайт выполняется в первый раз, ASP.NET выполняет дальнейшую компиляцию в чтобы создать выход из разметки. Примечание

Предварительно скомпилированный обновляемый сайт не позволяет нескольким страницам ссылаться на тот же класс CodeFile.

Недавно я сделал изменения на сайте, чтобы включить 2 страницы aspx, которые ссылались на один и тот же CodeFile (тот же код VB в фоновом режиме). На каждой странице были несколько разные свойства html, но для этого нужны одинаковые CodeFiles, поэтому для второго ASP page Я удалил автоматически сгенерированный файл VB-кода, а затем ссылался на другой CodeFile в HTML.

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

С этого момента мне нужно избегать использования по умолчанию флажка "Разрешить этот предварительно скомпилированный сайт обновляться"; Он должен оставаться непроверенным для моего веб-сайта, чтобы использовать VB CodeFiles, на которые ссылаются мои множественные страницы.

Заключение. Несколько страниц aspx, ссылающихся на один и тот же CodeFile, должны быть предварительно скомпилированы для правильной работы. Это означает, что сайт не сможет вносить какие-либо изменения в него без повторного депинга.