Файл заблокирован после HttpPostedFile SaveAs (LocationOnServer) - PullRequest
2 голосов
/ 19 июля 2011

У меня есть веб-страница aspx, которая используется в качестве обработчика для сохранения загруженных файлов через swfupload. Я сохраняю файл на сервере следующим образом:

HttpPostedFile uploadedFile = Request.Files["Filedata"];
uploadedFile.SaveAs(LocationOnServer);

проблема в том, что после сохранения файла файл остается заблокированным (с помощью w3wp.exe), пока я не перезапущу IIS. Есть ли способ освободить файл после сохранения? Спасибо

Ответы [ 4 ]

3 голосов
/ 19 июля 2011

Я имел дело с такой же ситуацией в прошлом. Вам необходимо запустить пул приложений под учетной записью домена. То есть пул приложений, в котором выполняется ваше веб-приложение, должен быть настроен для работы в качестве пользователя домена. Затем этому же пользователю домена должны быть предоставлены права доступа к папке, в которую вы пытаетесь загрузить. Чтобы назначить пользователя домена для пула приложений, выберите соответствующий пул в узле пулов приложений в IIS, щелкните правой кнопкой мыши и выберите свойства. В диалоговом окне свойств выберите вкладку удостоверения и выберите «Настраиваемый», а затем укажите учетную запись домена. Затем вы должны дать разрешения тому же пользователю в вашей папке.

1 голос
/ 19 июля 2011

Я не могу найти документацию, но вам, возможно, придется избавиться от объекта HttpPostedFile.В большинстве случаев, если файлы заблокированы, некоторые объекты, которые с ними связаны, не были правильно расположены.

0 голосов
/ 19 июля 2011

Вы пытались вызвать Finalize ()? У вас есть антивирусное или резервное программное обеспечение, которое может пытаться захватить файл?

Я не думаю, что разрешения - это проблема, потому что, если у вас еще не было разрешений для этой папки, вы не могли бы сначала записать в нее файл.

0 голосов
/ 19 июля 2011

Я бы проверил права доступа к папке на сервере.У меня была похожая проблема, когда приложение могло создавать файл, но не записывать в него, что приводило к его блокировке.

...