Вы не можете предотвратить это. IIS + ASP.NET динамически компилирует файлы, такие как .aspx, .asmx, .ascx, .ashx, .asax и другие. Это все файлы шаблонов, которые в конечном итоге преобразуются в исходный код на выбранном языке - C #, VB.NET или что угодно, на что вы хотите записать свои страницы ASPX.
Модель для ASP.NET при получении запроса на страницу выглядит следующим образом:
- проверьте, доступна ли сборка для запрашиваемой страницы и актуальна ли она. если это так, передайте запрос на страницу.
- если нет, создайте исходный код из задействованных шаблонов (aspx, ascx и т. Д.). Поместите сгенерированный исходный код в каталог ASP.NET Temp.
- скомпилировать исходные файлы в сборки с динамическими именами, а также помещенные во временный каталог. Если вы используете C #, это означает, что он запускает csc.exe, как вы уже видели.
- загрузить только что скомпилированную сборку.
- передать запрос этой сборке (например, шаг 1)
Файлы .out и .err - это просто stdout и stderr из вызова csc.exe.
Они вряд ли будут занимать 3 ГБ пространства файловой системы.
Но ASPNET также сохраняет временные копии всех сборок, на которые ссылаются любые страницы или элементы управления (и т. Д.), В этом дереве каталогов. Если вы ссылаетесь на System.Xml.dll на трех отдельных страницах ASPX, то копия System.Xml.dll размещается в трех разных временных каталогах в дереве временных папок ASPNET. Эти копии могут накапливаться, и я не удивлюсь, если узнаю, что большая часть ваших 3 ГБ находится в копиях DLL.
Подробнее об этом можно узнать на http://www.codeproject.com/KB/aspnet/ASPXFILES.aspx
Вы можете удалить любые файлы в каталоге C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
. Это невозможно, пока IIS и ASP.NET активны. Если у вас есть период обслуживания, вы можете удалить их, когда сайт не работает. Если это компьютер разработчика, просто остановите IIS (net stop w3svc
), удалите все подкаталоги в этой папке, затем перезапустите IIS (net start w3svc
).
Связанный:
- Удаление временных файлов ASP.Net
- Для чего нужна папка «Temporary ASP.NET Files»?