in

DotNetSide

Dot Net South Italy Developers User Group

Latest post 27 Oct 2008 4:42 by GBFoundation. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • 22 Oct 2008 12:32

    file in uso in un altro processo

    Salve!
    Ho un piccolo problema su un software in vb.net che manda in modo ciclico delle email con un allegato (un file zip) che devo cancellare dopo aver inviato in modo positivo l'email.
    Fin qui tutto ok.Il problema nasce quando devo cancellare il file allegato.
    Il software mi dà un eccezione:

    Il processo non può accedere al file 'C:\tmp.zip' perché è in uso da un altro processo.

    il codice per l'invio delle email è il seguente:


            'Allegati
            If File.Exists(Allegato) Then
                Dim attach As New Net.Mail.Attachment(Allegato)
                EmailMessage.Attachments.Add(attach)
            End If
            Client.Host = SmtpHost
            Client.Port = Porta
            If Autenticazione Then
                Dim cr As New Net.NetworkCredential(User, Pass)
                Client.Credentials = cr
            Else

            End If
            Try
                Client.Send(EmailMessage)
                File.Delete(Allegato)
                Return "OK"
            Catch ex As Exception
                Return ex.Message
            Finally
                EmailMessage.To.Clear()
                EmailMessage.Bcc.Clear()
                EmailMessage.Attachments.Clear()
                EmailMessage.Dispose()

            End Try
    • Post Points: 20
  • 23 Oct 2008 1:26 In reply to

    • VitoA
    • Top 10 Contributor
      Male
    • Joined on 07 Mar 2006
    • Posts 932
    • Points 11,005

    Re: file in uso in un altro processo

    vincenzo.net:

    Ho un piccolo problema su un software in vb.net che manda in modo ciclico delle email con un allegato (un file zip) che devo cancellare dopo aver inviato in modo positivo l'email.
    Fin qui tutto ok.Il problema nasce quando devo cancellare il file allegato.

    Ciao,

    hai già provato ad effettuare la dispose dell'oggetto EmailMessage prima di effettuare la delete dell'allegato?

    Vito Arconzo
    Microsoft MVP - Client App Dev
    DotNetSide Community Manager

    http://blog.vitoarconzo.it
    http://mvp.support.microsoft.com - http://italy.mvps.org

    • Post Points: 20
  • 23 Oct 2008 11:19 In reply to

    Re: file in uso in un altro processo

    Se noti il codice verso la fine scarico dutti gli oggetti dopo la FINALLY!!

    • Post Points: 20
  • 23 Oct 2008 13:21 In reply to

    • VitoA
    • Top 10 Contributor
      Male
    • Joined on 07 Mar 2006
    • Posts 932
    • Points 11,005

    Re: file in uso in un altro processo

    vincenzo.net:

    Se noti il codice verso la fine scarico dutti gli oggetti dopo la FINALLY!!

    Appunto!

    Prima effettui la delete del file che, probabilmente, è lockato dall'oggetto EMailMessage. Prova ad effettuare la delete nella finally dopo le varie dispose.

    Vito Arconzo
    Microsoft MVP - Client App Dev
    DotNetSide Community Manager

    http://blog.vitoarconzo.it
    http://mvp.support.microsoft.com - http://italy.mvps.org

    • Post Points: 20
  • 27 Oct 2008 2:27 In reply to

    Re: file in uso in un altro processo

    Scusa! Nella risposta avevo omesso che avevo già provato a fare quella prova. Non sò più cosa provare.

    • Post Points: 20
  • 27 Oct 2008 4:42 In reply to

    Re: file in uso in un altro processo

    Hai provato a verificare quale processo sta realmente bloccando la cancellazione. Credo che con Process Explorer della Sysinternal ( premetto che non ho mai provato) dovresti riuscire a trovare una risposta.

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 5
Page 1 of 1 (6 items)
Powered by Community Server (Commercial Edition), by Telligent Systems