Mike: IIS gibt Dateien nicht frei

Moin @ All,

ich habe eine PHP Applikation für unser Intranet geschrieben.
Das ganze läuft "leider" unter IIS 5.0 mit Windows 2000.

Nun habe ich das Problem das der IIS Dateien nicht zum Löschen oder
Renamen freigibt. Die PHP scripte löschen zum Teil die verarbeiten Dateien nicht. Wenn ich diese Dateien im WIN Explorer löschen möchte, dann wird behauptet die Dateien seien im Zugriff, was definitiv gelogen ist.

Im DOS Modus kann die entsprechenden Dateien löschen.
Ich möchte auch kein System Command in PHP absetzten, sondern ich möchte unlink und/oder rename nutzen.

Die PHP Scripte sind so programmiert, dass das grundsätzlich nichts ausmacht, aber ich möchte ja auch nicht gleiche Datei immer und immer wieder anpacken müssen.

Ist das ein BUG, und wenn ja, gibt es einen Patch?

Danke & Gruß
Mike

--
Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
  1. Hallo,

    hast du dir mal den eventuellen Fehler deiner Dateioperation von PHP ausgeben lassen?

    gruss

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
    1. Moin Eternius,

      hast du dir mal den eventuellen Fehler deiner Dateioperation von PHP ausgeben lassen?

      Yep. Ich habe das "@" bei den PHP Bfehlen weggelassen, keine Fehlermeldung. Sogar der Return Wert ist "unrichtig" TRUE.

      Die Datei ist noch da, und ein Löschversuch im MS Explorer endet nach 2 Minuten mit dem Hinweis, die Datei sei noch im Zugriff.

      Dies ist ber devinitiv nicht der Fall, denn ich habe das System noch alleine, im Beta Test.

      Gruß
      Mike

      --
      Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
      1. Servus,

        unter welchem User läuft der IIS, bzw, hat der Löschrechte auf das Verzeichnis, bzw, hast du die maschine mal neu gestartet, bzw, wie werden die dateien erstellt (von einem anderen php skript, dass eventuell nicht wirklich terminiert?).
        Welches Service Pack?
        ;-)

        gruss

        --
        no strict;
        no warnings;
        Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
        1. Moin Eternius,

          unter welchem User läuft der IIS, bzw, hat der Löschrechte auf das Verzeichnis, bzw, hast du die maschine mal neu gestartet, bzw, wie werden die dateien erstellt (von einem anderen php skript, dass eventuell nicht wirklich terminiert?).
          Welches Service Pack?

          Viel viel Fragen :-)) Die meisten kann ich erst morgen aus der Firma beatnworten.

          Mit SP meinst Du SP von WIN 2000 ?
          Löschrechte habe ich, denn es funtzt zu 80% nur ab und an spinnt er.
          Die Dateien sind unterschiedlichen Urprungs.
          Heute hatte ich das Phänomän das ich eine Datei im Explorer löschen wollte. Rechter Mausklick und verutscht, da hatte ich eine Verküpfung erstellt ( aus versehen ) Selbst diese lies sich nicht löschen. Also, mit anderen Worten: Die Dateien sind devinitiv nicht im Zugriff. ( Auser der IIS hat sie, warum auch immer im Zugriff )

          Gruß
          Mike

          --
          Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
          1. morgens,

            Heute hatte ich das Phänomän das ich eine Datei im Explorer löschen wollte.

            Der Windows-Explorer ist in dem Zusammenhang, den du diskutierst, auch das am wenigsten geeignete Instrument. Es _kann_ aus dem Windows-Explorer heraus auch nicht funktionieren.

            Folgendes passiert: du rufst mit dem Löschbefehl eines PHP-Scripts über den IIS einen Prozeß auf, der irgendwas, was der IIS gestartet hat, beenden soll. Es "klappt nicht", wie du beschrieben hast, aber das heißt eben auch noch lange nicht, daß der Prozeß, der das Löschen herbeiführen soll, beendet wäre. Dieser Prozeß läuft wahrscheinlich in einer Endlosschleife weiter. Und solnage er läuft, ist eben deine Datei (die du gerne entfernen möchtest) im Prozeß selbst gefangen und kann nicht von einem anderen neuen Prozeß, den jetzt der Windows-Explorer starten soll, eliminiert werden.

            Das einzige Instrument, das du zur Verfügung hast, ist _nicht_ der Windows-Explorer, sondern der Task-Manager. Öffne ihn, kille den laufenden PHP-Löschprozeß, dann kannst du auch die Datei löschen.

            Das ist allerdings für dein Problem generell überhaupt keine Lösung. Es bringt dich allenfalls als Administrator wieder in die Lage, dein System administrieren zu können. Der Fehler liegt irgendwoanders, aber das kriegt man erst raus, wenn du nicht ganz so viele Worte machst, sondern genau beschreibst, _wie_ du den IIS dazu konfiguriert hast, mit PHP umzugehen und _was_ (als Quellcode) in deinem PHP-Script nun das Löschen veranlassen soll.

            Es gibt dafür auch im IIS durchaus zuverlässige logs (Protokolle). Schau mal da hinein, und wenn du diese logs nicht auswerten kannst, gibst du sie hier mal an, dann hat man eventuell "Fakten", aus denen man Rückschlüsse für dein Problem und dessen Behebung ziehen kann.

            Grüße aus Berlin

            Christoph S.

            1. Moin Christoph,

              Es gibt dafür auch im IIS durchaus zuverlässige logs (Protokolle). Schau mal da hinein, und wenn du diese logs nicht auswerten kannst, gibst du sie hier mal an, dann hat man eventuell "Fakten", aus denen man Rückschlüsse für dein Problem und dessen Behebung ziehen kann.

              zunächst mal Danke für deine Ausführungen. Es liegt nicht an PHP Scripten oder gar an deren unsachgemäßen bzw unvollendeten Ausführungen. Das kann ich sagen, da es auch Dateien betrifft welche nie im Zugriff irgendwelcher PHP Scripte waren. Zum Beispiel. Ich erstelle eine Sicherheitskopie eines scriptes. Mit Kopieren und Einfügen. Also heißt die Datei "Kopie mein_script.php" Dann möchte ich diese sofort nach deren Erstellung löschen. Geht nicht.
              Fehlermeldung: Befindet sich im Zugriff.

              Gruß
              Mike

              --
              Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
              1. Hallo,

                hmm, dann hört sich das ja wohl nach einem generellen Problem an.
                Läuft auf dem Server ein Indexing Service über die Ordner wo die Dateien liegen? (könnte gut sein, dass der so gierig ist, und die Dateien gleich indizieren will ;-?).

                • Ist das in _allen_ Ordnern auf dem Server so?
                • Hast du den Rechner mal neugestartet?
                • Seit wann ist das so (Vielleicht n Patch eingespielt oder andere software)?
                • Versagen irgendwelche Dienste (steht im Errorlog)?
                • Wenn das Ding noch im Betatest läuft, dann versuch doch mal alle erhältlichen Patches einzuspielen, wenn das alles nix hilft, wirst du die Kiste noch mal Platt machen müssen. Wenn das nix hilft würde ich auf einen partiellen Platten/Speicher Defekt tippen (so richtig ins Blaue geraten).

                puh ,-)

                gruss

                --
                no strict;
                no warnings;
                Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
                1. Moin Eternius,

                  Läuft auf dem Server ein Indexing Service über die Ordner wo die Dateien liegen? (könnte gut sein, dass der so gierig ist, und die Dateien gleich indizieren will ;-?).

                  das ist ein guter Tip. Es handelt sich um ca. 50.000 Dateien, wobei permanent neue hinzu kommen.

                  Ich habe vom Admin den Indexing Service abschalten lassen.
                  Jetzt schau mer mal.

                  Danke & Gruß
                  Mike

                  --
                  Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
                2. Moin @ All,

                  danke an Eternius für seine Hartnäckigkeit :-)

                  Gruß
                  Mike

                  --
                  Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
                  1. juhuu ;-)

                    gruss

                    und http://www.linux.org ;-)

                    --
                    no strict;
                    no warnings;
                    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
                    1. Moin Eternius

                      und http://www.linux.org ;-)

                      Gerne, aber das sind leider die Vorgaben :-(

                      Gruß
                      Mike

                      --
                      Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."
              2. Hi,

                wie Eternius auch meinte, könnte es in diesem Fall (was aus deinem ursprünglichen Posting nicht so richtig hervorging) am Index Server hängen. Aber der sollte schnell genug sein um _eine_ Kopie eines PHP Scriptes ad-hoc zu indizieren.

                Ich tippe aber eher auf die Integration von PHP in deinem Fall.

                Kopierst du die Kopie ins selbe Verzeichnis? Such doch mal ein anderes Verzeichnis, was nicht über den IIS publiziert ist also C:\Temp\ oder so.

                Warum machst du dir ne Kopie von einem Script, die du dann gleich wieder löschen willst? ;)

                Gruß, Frank

  2. Hi,

    Wenn ich diese Dateien im WIN Explorer löschen möchte, dann wird
    behauptet die Dateien seien im Zugriff, was definitiv gelogen ist.

    _das_ halte ich für gelogen

    Wahrscheinlich läuft der Prozess der die Dateioperationen gemacht hat immernoch in einer Art Deadlock aufgrund eines Verarbeitungsfehlers.

    IIS-MMC -> Restart IIS ... sollte dein problem _kurzfristig_ lösen

    Gruß, Frank