2016-05-10 8 views
2

У меня есть скомпилированный сайт ASP.NET Webforms, который безупречно работает на моей локальной машине. Как только сайт будет перенаправлен на живые серверы (банк из 10 серверов с IIS8 на сервере Windows 2012), сайт будет перекомпилировать по каждому запросу.ASP.NET перекомпилирует по каждому запросу

Если я перехожу во временный каталог файлов ASP.NET, для всех пользовательских элементов управления на сайте есть файлы DLL App_Web, а также файлы .delete для всех двоичных файлов, которые, как мне кажется, вызывают перезапуск приложения.

App_Web_course.aspx.cdcab7d2.ijbbuqi7.dll App_Web_course.aspx.cdcab7d2.ijbbuqi7.dll.delete

Это иногда хорошо работать на некоторых серверах, и когда я смотрю на темп. NET файлов на этих серверах .delete файлов не существует.

Я вытаскиваю свои волосы. За 17 лет развития я никогда не видел этого раньше, и, похоже, для него нет никаких рифм или причин.

Обновление: Если кто-либо еще испытывает это, пожалуйста, проверьте мой ответ ниже для моего разрешения.

+1

Попробуйте и запустите здесь: https://msdn.microsoft.com/en-us/library/ms366723.aspx - Ваше упоминание о временных файлах - это то, с чего я начинаю. –

+0

Вы проверяете, как часто пул приложений перерабатывается для этого приложения? – Kamo

ответ

0

У меня есть обновление и решение проблемы.

Во время первоначального сообщения я не заметил, что файлы были размещены на общем сетевом ресурсе SMB. Это стало причиной этой постоянной перекомпиляции из-за fcnMode ASP.NET.

Монитор процессов показал тысячи запросов через w3wp.exe для «FileChangeNotify», который при попадании в критический каталог, такой как «bin», вызвал бы повторную компиляцию и перезапуск приложения.

К счастью, для этого есть однострочное исправление. В web.config (ы) вашего проекта, изменить следующую строку, чтобы включить следующий атрибут:

<httpRuntime fcnMode="Disabled" /> 

Это остановит ASP.NET от сканирования вашего каталога сети для постоянных изменений файлов.

1

Возможные причины, вызывающие перекомпиляцию.

  • Вы обновить web.config
  • Вы можете создать/удалить app_offline.htm файл в корневом каталоге.
  • Вы можете создать/изменить любой .aspx или .aspx.cs файл
  • Вы создавать/изменять файлы на App_Code папку
  • Вы оставили некоторые папки загрузки без присмотра и пользователей загружать файлы aspx.
  • Вы дату/время на компьютере неправильно (назад несколько лет)

Вы можете использовать Process Monitor, чтобы увидеть, что происходит от всего, что если вы не можете найти его на код или не знаю, что другие библиотеки.

+0

Я могу подтвердить, что я ничего не делаю. Сайт скомпилирован, поэтому все файлы aspx.cs находятся внутри dll. –

+0

@DavidRabbich Используйте монитор процесса, чтобы узнать, что происходит ... что такое изменение и вызывает перекомпиляцию. – Aristos

Смежные вопросы