У меня есть некоторые проблемы с удалением временной папки и файлов на моем сервере, когда пользователи не заканчивают некоторые действия на веб-страницах и не выходят на другие веб-страницы. Созданы файлы Initialy at Page Load, которые позволяют пользователю загружать файлы. Я попытался выполнить уничтожение во время Idisposable без успеха. Может ли кто-нибудь указать лучший способ удаления папок и файлов, когда пользователь покидает страницу без нажатия кнопки или отмены.C# On Quit WebPage Удаление файлов и папок на сервере без каких-либо действий пользователя
ответ
Вы можете исследовать событие OnUnload на странице, но, честно говоря, лучше всего, чтобы сценарий выполнялся периодически и удалял все файлы из папки temp старше, чем какая-либо разумная сумма. например запустить в полночь и удалить все файлы, созданные больше 24 часа назад (или меньше, если дисковое пространство является проблемой).
Я тестировал, но я не доволен результатом. Другой способ - использовать одно событие окончания сеанса в глобальном asax, но не возникает, если сеанс хранится в StateServer или SQLServer в режиме prod. Временные папки плохо управляются, если вам нужно перенести файлы позже на сервер. – user325558
Если вы имеете в виду, что вас не устраивает использование события OnUnload, то да, поэтому я рекомендовал запустить сценарий. Когда я сказал «временная папка», я имел в виду вашу временную папку, а не какую-то временную папку OS. Я не совсем понимаю, что вы подразумеваете под «плохо управляемым»? – Zarigani
Не работает как esetpted для переноса содержимого из временных папок на веб-сервер. Я вернулся для создания std-файлов temp.folders непосредственно на сервере. // Запускайте один скрипт с помощью кварца, я не очень люблю. Я предпочел бы управлять непосредственно на месте, используя какое-то контролируемое событие. – user325558
Я не уверен, почему вы хотите создавать временные папки и файлы. Но удалить их без каких-либо действий - это уродливый способ полагаться, потому что вы зависите от некоторых таймеров. Вы можете использовать System.IO.Path.GetTempPath() для получения временного файла, и система позаботится об удалении.
Собственно, Windows не будет автоматически удалять временную папку. – SLaks
Вы отправили тот же вопрос здесь: http://stackoverflow.com/questions/2714583/c-webpages-manage-exit-events-or-quit-with-no-user-action-server-side – BigJump