2010-02-10 2 views
0

В моем приложении я загружаю файл из системы DMS на свой сервер. Как только файл загружается, в какой-то среде iis сохраняет блокировку файла, и когда приложение пытается перезагрузить файл и помещает файл в одно и то же место, возникает ошибка, связанная с тем, что файл используется другим процессом. Ниже приведен код:Файл остается заблокированным даже после вызова filestream.close

Try 
      Directory.CreateDirectory(serverPath.ToString) 

      downloadFilePath = serverPath.ToString & fileName 
      fileDownloaded = estimateFacade.DownloadFiles(dmsLinkID, downloadFilePath) 


    Catch threadex As System.Threading.ThreadAbortException 

    Catch ex As System.Exception 
     lblDownloadingcomment.Text = ex.Message 
     trButtons.Visible = True 
     btnDownload.Visible = False 
     'Throw ex 
    Finally 
     If Not fileDownloaded Is Nothing Then 
      fileDownloaded.Close() 
     End If 
    End Try 

ответ

1

Возможно, вы захотите проверить, что это приложение, которое блокирует файл. Отличный бесплатный инструмент Process Explorer от Microsoft имеет пункт меню «Найти», в котором вы можете ввести имя файла и посмотреть, какие процессы имеют блокировку на нем.

Edit:

Я просто заметил, что вы вещи ThreadAbortException годов. Пожалуйста, прочтите Joe Duffy's book, почему это относительно бессмысленное упражнение.

+0

Он заблокирован iis, так как, когда я перезапускаю iis, он освобождает блокировку. – Ankit

+0

+1 Кроме того, иногда многие приложения сохраняют последнее местоположение загрузки заблокированным (т. Е. Имеют дескриптор этого места) для будущего использования. Не уверен, что IIS делает то же самое. –

Смежные вопросы