Я пытаюсь изменить расположение временных файлов ASP.NET, чтобы я мог очистить их во время выпуска новой версии.Как настроить 32-разрядные веб-сайты IIS или приложения с помощью командлетов PowerShell
Потому что очень трудно найти расположение временных файлов ASP.NET для определенного веб-сайта, приложение виртуального каталога под местоположениями C:\Windows\Microsoft.NET\Framework
C:\Windows\Microsoft.NET\Framework64
. Я решил, что было бы проще просто переместить файлы в определенное место на диск, который затем можно очистить.
Вы можете сделать это, изменив атрибут tempDirectory в разделе конфигурации system.web/compilation
.
У нас есть автоматические процессы сборки и выпуска сервера, поэтому это было просто, чтобы добавить код в сценарии конфигурации и выпуска.
Однако во время тестирования я обнаружил, что местоположение 32-разрядных приложений не изменяется.
код я использую:
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT' -location 'MyWebSite' -filter 'system.web/compilation' -name 'tempDirectory' -value 'E:\Temporary ASP.NET Files\MyWebSite' -Clr v2.0
Этот код работает без ошибок и записывает запись в файл web.config корня на: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config
.
например.
<location path="MyWebSite">
<system.web>
<compilation tempDirectory="E:\Temporary ASP.NET Files\MyWebSite" />
</system.web>
</location>
Обратите внимание, что без параметра -clr v2.0, значение будет записано в файл конфигурации CLR 4.0 на C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
.
Вы можете увидеть запись в редакторе конфигурации IIS, а также:
Проблема заключается в пуле приложений установлено значение «Enable 32-битных приложений» и, следовательно, это свойство игнорируется.
Если я вручную переместить элемент местоположения, показанный выше от C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config
к C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
Изменение работ и действительно временные файлы ASP.NET двигаться в этом месте, указанном при компиляции сайта происходит.
Вопрос не в временных файлах ASP.NET, это более общий вопрос о том, как вы собираетесь настраивать 32-разрядные приложения в PowerShell или действительно в IIS? Кажется, нет никакого способа сделать это, что я считаю невероятным. Существует множество 32-битных приложений, вокруг которых еще нужно настроить.
Также обратите внимание, что я решил использовать корневую web.config, чтобы сохранить это значение по уважительным причинам:
ApplicationHost.config
не может хранитьsystem.web
конфигурации- Места расположения временных файлов не является чем-то, что известен во время разработки и определяется конфигурацией сервера хостинга. Поэтому этот параметр не может быть указан в файле
web.config
для самого приложения.
Спасибо за любое просвещение по этому вопросу.