2010-02-10 4 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

파일을 잠그고있는 응용 프로그램인지 확인해야 할 수 있습니다. Microsoft의 탁월한 무료 Process Explorer 도구에는 파일 이름을 입력하고 어떤 프로세스가 잠겨 있는지 확인할 수있는 "찾기"메뉴 옵션이 있습니다.

편집 : 난 그냥 당신이 ThreadAbortException이의 물건 것으로 나타났습니다

. 왜 이것이 상대적으로 무의미한 운동인지를 Joe Duffy's book으로 읽어보십시오.

+0

iis를 다시 시작하면 잠금이 해제되므로 iis에 의해 잠겨 있습니다. – Ankit

+0

+1 또한 때로는 많은 응용 프로그램이 나중에 사용할 수 있도록 마지막 다운로드 위치를 잠긴 상태로 유지합니다 (즉, 해당 위치를 처리합니다). IIS가 동일한 기능을 수행하는지는 확실하지 않습니다. –

관련 문제