Ответ 1
Это то, что известно как папки теневого копирования.
Упрощенно.... и я действительно это имею в виду:
Когда ASP.NET запускает ваше приложение для в первый раз он копирует любые сборки найденный в папке /bin, копирует любые файлы исходного кода (например, в папке App_Code) и анализирует ваши aspx, ascx файлы в источник С# файлы. Затем ASP.NET создает/компилирует весь этот код в runnable приложение.
Одно из преимуществ этого заключается в том, что это предотвращает возможность сборки .NET DLL # (в папке /bin ), которая блокируется рабочим процессом ASP.NET и, следовательно, не обновляется.
ASP.NET наблюдает за изменениями файлов на вашем веб-сайте и при необходимости снова начнет весь процесс.
Теоретически папке не нужно какое-либо обслуживание, но время от времени, и только очень редко вам может понадобиться удалить содержимое. Тем не менее, я работаю для хостинговой компании, мы запускаем до 1200 сайтов на один общий сервер, и мне не приходилось прикоснуться к этой папке на любой из 250 или около того машин в течение многих лет.
Об этом говорится в статье MSDN Общие сведения о динамической компиляции ASP.NET