none
Filesystem-Task fails to delete a file ... RRS feed

  • Frage

  • I use an EXCEL-File  with a connection to this file to import several lines of data into a temporary table.

    Before doing this, I check with a VB.NET Task for the existence of this file; if it is there I proceed otherwise the execution should stop.

    After importing I do a lot of data conversion-tasks.

    At the end of the ssIS-package, the EXCEL-file should be deleted.

    but the filesystem-task always fails, saying that this cannot be done as the file is in use by another process. But it does not tell me who is using the file.

    As I said above, the EXCEL-file is only needed once in the beginning.

    What can I do? because of this, the package is more often executed as needed, because the source-file keeps existing.

    Dienstag, 27. März 2012 17:11

Antworten

  • Falls du die Datei im VB.Net -Task öffnest, solltest du diese dort natürlich auch wieder schließen.

    wie sieht denn das Script dort aus?

    Du benötigst aber auch nicht unbedingt einen VB.Net Task, du könntest Beispielsweise einen For Each Kontainer verwenden und dort als Enumerator einen Dateisystemenumerator verwenden, dann würdest du deinen gesamten Prozess innerhalb des For Each Kontainer ausführen.

    Gruß

    Theo

    • Als Antwort markiert NicoNi Donnerstag, 29. März 2012 06:03
    Mittwoch, 28. März 2012 21:31

Alle Antworten

  • Da es ein deutsches Forum ist, antworte ich auch in Deutsch. :-)

    Kann es sein,  daß der von Dir erwähnte VB.NET Task die Datei noch im Zugriff hat?

    Dienstag, 27. März 2012 21:22
  • Durchaus möglich.

    Ich habe jetzt die ganze Sache mit dem ProcessExplorer überprüft.

    tatsächlich ist der Übeltäter zum Zeitpunkt des Fehlers der Prozess DtsDebugHost. Übrigens gibt es 2 prozesse mit unterschielichen PIDs zum Zeitpunkt des Fehlers.

    Anscheinend lässt das geamte SSIS-Package die Datei nicht mehr richtig los.

    Zum Thema deutsches Forum/englisch posten: Ich bin über eine Google-Suche zum Thema IntegrationSerbvices auf das ENGLISCHsprachige Forum gestossen und habe das Posting geschrieben. Das aber tauchte dann in einem DEUTSCHsprachigen Forum auf.

    • Als Antwort markiert NicoNi Donnerstag, 29. März 2012 06:03
    • Tag als Antwort aufgehoben NicoNi Donnerstag, 29. März 2012 06:03
    Mittwoch, 28. März 2012 08:13
  • Falls du die Datei im VB.Net -Task öffnest, solltest du diese dort natürlich auch wieder schließen.

    wie sieht denn das Script dort aus?

    Du benötigst aber auch nicht unbedingt einen VB.Net Task, du könntest Beispielsweise einen For Each Kontainer verwenden und dort als Enumerator einen Dateisystemenumerator verwenden, dann würdest du deinen gesamten Prozess innerhalb des For Each Kontainer ausführen.

    Gruß

    Theo

    • Als Antwort markiert NicoNi Donnerstag, 29. März 2012 06:03
    Mittwoch, 28. März 2012 21:31
  • Cool, das war's !

    Zimmer aufräumen  nach dem Spielen war schon früher nicht meine Stärke.

    Im VB.NEt-Skript wurde eine Excel-Connection erstellt, die Datei geöffnet und der Name der ersten Tabelle überprüft und ggf. geändert - damit folgende Schritte nicht ins Leere greifen.

     Mit einem .Close am Ende scheint es jetzt zu gehen!

    Donnerstag, 29. März 2012 06:03