w3wp.exe продолжает читать мои .compiled файлы - PullRequest
2 голосов
/ 09 ноября 2011

Мы работаем с сайтом asp.net на IIS6.Мы только что перешли с .Net3.5 на .Net 4.0.В нашем процессе сборки мы используем прекомпиляцию aspnet_compiler te, а также aspnet_merge для объединения сборок.

После того, как мы перешли на .Net 4.0, мы провели тест производительности.Это показало, что версия 4.0 была намного медленнее, чем версия 3.5.

Мы заметили, что для каждого выгружаемого сервера процесс w3wp.exe считывает скомпилированный файл (т.е. resultlistpage.aspx.cf9ca39a.compiled) из /bin каталог веб-сайта.Он не только читает файл .compiled из каталога bin, но также для каждого элемента управления на странице читает соответствующий файл .compiled (например, resultlist.ascx.639c3968.compiled).Это происходит для каждого запроса страницы.

Я использовал Sysinternals Process Monitor, чтобы увидеть это.

Эти файлы aspx и ascx на самом деле являются представлениями MVC2.

Я пытался отключитьПараметр «Убедитесь, что файл существует» для .aspx en .ascx в IIS6, но это не помогло.Также я установил флажок «Кэшировать расширения ISAPI» моего приложения, но безрезультатно.

В нашей версии 3.5 это поведение не отображается.Он просто загружает .compiled файлы один раз, а затем кэширует его.

В отчаянии, как я могу сказать IIS6 не читать .compiled файлы для каждого запроса?

Мы перейдем к IIS7, но не очень скоро.

1 Ответ

0 голосов
/ 02 октября 2012

Да ... Я всегда предполагал, что у IIS было для проверки файла .compiled, так как он содержит хеш источника;в противном случае, как он может определить, изменили ли вы файл в это время?В любом случае, если это поведение законно изменилось между 3,5 и 4,0, вы можете проверить:

Определяете ли вы "обновляемый" на этапе прекомпиляции?Если это так, возможно, это может быть проблемой.

Еще одна вещь, которую вы можете попробовать, это указать «фиксированные имена», которые будут выдавать полностью именованные dll, которые, по крайней мере, позволят вам точно знать, какие файлы постоянно проверяются..

...