legolas41: Datei löschen... merkwürdiges Problem!

Hallo!

Ich möchte per ASP Script eine Datei löschen. Im Prinzip auch kein Problem. Ich habe ein Script geschrieben, dass mit dem PWS auf meinem Rechner funktioniert.

Ich mache das so: MyDelFile.Delete

Mein Problem ist: Ich lege es auf meinen eigenen Server und starte das Script. Geht aber nicht denn: Erlaubnis verweigert.

Aha denke ich und stelle die Rechte in dem Ordner auf ändern, schreiben, lesen usw. Aber es geht immer noch nicht. Wie kann das sein? Ich habe alles probiert. Wieso hat mein Script nicht die Erlaubnis, eine Datei zu löschen?

Greetings
Legolas

  1. Hallo,

    was ist das denn für eine merkwürdige Anweisung.

    Warum gehst du nicht einfach über Delete-Anweisung vor?

    strSel = "Delete * From TabellenNme [Where ID=20]"
    Conn.ExeCute(strSel)

    Tja, das ist glaubig leichter.

    Sohail

    1. Hallo!

      Ich möchte nicht einen Eintrag aus einer Datenbank löschen sondern eine Datei aus einem Ordner.

      Es läuft folgendermaßen ab:

      Jemand möchte über ein Formular auf einer Webseite eine E-Mail mit Anhang verschicken. Der Anhang wird nach Absenden der Daten auf den Server geladen, verschickt und soll anschließend gelöscht werden.

      Hier ein kurzer, zusammengefasster Auszug aus dem Quelltext.

      strPath = "script:" & Server.MapPath("MetaBuilders.FileUp.wsc")
      set MBRequest = GetObject( strPath )
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set MyDelFile = fso.GetFile(Server.MapPath(MBRequest("Datei").FileName))
      Response.Write MyDelFile
      MyDelFile.Delete

      Wie gesagt, das Script funktioniert auf meinem Rechner mit der PWS Umgebung einwandfrei. Nur auf dem Server funkts nicht.

      Greetings
      Legolas

      1. Hallo,

        versuch mal das hier. Bei mir hat es funktioniert.

        <%
        Datei="Test.htm"
        strPath = Server.MapPath(Datei)

        Set FileObjekt = Server.CreateObject("Scripting.FileSystemObject")
        Set OnFile = FileObjekt.GetFile(strPath)
        OnFile.Delete(FALSE)
        %>

        SOhail

        1. Hallo!

          Das Script funkt, genauso wie meines, leider nur auf meinem PWS Rechner, nicht jedoch auf dem Server. Ich bekomme die gleiche Fehlermeldung: Erlaubnis verweigert

          Und das obwohl ich alle Rechte vergeben habe.

          Ich versteh das nicht.

          Greetings
          Legolas

          1. Hi,

            hast die Rechte auf dem Server vergeben?
            Ich habe das nämlich auch auf Server versucht. Der Ordner, indem die beide Dateien stehen hat nur der Ausführen-Recht.

            Guck mal genauer an. Vielleicht hast du woanders ein Fehler.

            Sohail

          2. Hallo,

            Das Script funkt, genauso wie meines, leider nur auf meinem PWS Rechner, nicht jedoch auf dem Server. Ich bekomme die gleiche Fehlermeldung: Erlaubnis verweigert

            Und das obwohl ich alle Rechte vergeben habe.

            Könnte daran liegen, dass der Webuser in dem Verzeichnis, auf das du zugreifst, keine Berechtigung zu 'Ändern' hat.
            Diese Berechtigung musst du über den Datei-Explorer vornehmen.
            z.B.
            Kontextmenu --> Eigenschaften --> Sicherheitseinstellungen:
            Name: Jeder
            Berechtigungen: Vollzugriff

            Gruß
            Stefan

            1. Hi,

              Könnte daran liegen, dass der Webuser in dem Verzeichnis, auf das du zugreifst, keine Berechtigung zu 'Ändern' hat.
              Diese Berechtigung musst du über den Datei-Explorer vornehmen.
              z.B.
              Kontextmenu --> Eigenschaften --> Sicherheitseinstellungen:
              Name: Jeder
              Berechtigungen: Vollzugriff

              bloss keinen Vollzugriff für jedermann setzen. Erstmal im IIS nachschauen ob Scripte ausgeführt werden dürften. Und noch was (poste ich mal hier) :

              Set MyDelFile = fso.GetFile(Server.MapPath(MBRequest("Datei").FileName))
              MyDelFile.Delete
              <
              autsch...

              tscherno

              1. Hi Tscherno,

                Könnte daran liegen, dass der Webuser in dem Verzeichnis, auf das du zugreifst, keine Berechtigung zu 'Ändern' hat.
                Diese Berechtigung musst du über den Datei-Explorer vornehmen.
                z.B.
                Kontextmenu --> Eigenschaften --> Sicherheitseinstellungen:
                Name: Jeder
                Berechtigungen: Vollzugriff

                das sollte nur ein Beispiel sein, um zu testen, ob hier das Problem liegt.

                bloss keinen Vollzugriff für jedermann setzen. Erstmal im IIS nachschauen ob Scripte ausgeführt werden dürften.

                Im IIS hat er bereits nachgeschaut.
                Derjenige, der Dateien in einem best. Verzeichnis auf dem Server soll löschen können (muss ja nicht JEDER sein), muss doch Vollzugriff auf das Verzeichnis haben. Oder?

                Set MyDelFile = fso.GetFile(Server.MapPath(MBRequest("Datei").FileName))
                MyDelFile.Delete
                <
                autsch...

                Was passiert da genau? Ich habs lieber mal nicht ausprobiert.

                Gruß
                Stefan

                1. Hi,

                  Im IIS hat er bereits nachgeschaut.
                  Derjenige, der Dateien in einem best. Verzeichnis auf dem Server soll löschen können (muss ja nicht JEDER sein), muss doch Vollzugriff auf das Verzeichnis haben. Oder?

                  Wenn dann nur Ändern-Rechte. Ich würde da eine Gruppe anlegen wo er reinkommt oder dem IWAM_SERVER (die Webapplikation) Rechte auf das Verzeichnis geben, je nachdem. Ersteres bringt ja auch nur etwas, wenn anonyme Anmeldung deaktiviert ist.

                  Set MyDelFile = fso.GetFile(Server.MapPath(MBRequest("Datei").FileName))
                  MyDelFile.Delete
                  <
                  autsch...

                  Was passiert da genau? Ich habs lieber mal nicht ausprobiert.

                  Das ist reines Gottvertrauen, denn was passiert wenn ich etwas wie "../../irgendwas" sende? Und wenn der IIS nicht gefixt ist, dann hat er sicherlich noch das Bug, wo ich dann über dass Root-Verzeichnis hinaus kommme, also auf C:\ oder D:\ oder wo auch immer. Schlechte Idee;) Bei solchen Aktionen pflege ich ein weiteres Verzeichnis mit anzugeben, in dem ich z.B. Server.MapPath("verzeichnis/" + Request(x)) angebe.
                  Aber ich habe mir den Code auch nicht richtig angeschaut, war wohl schon spät, und es kommt ja kein Request so wie ich es meinte zum Einsatz. Also Entwarnung;)

                  tscherno

  2. Hallo,

    wenn das so ist (Rechte ok., hat auf PWS funktioniert), kann auch nur ein Antivirusprogramm auf dem Server, das die FSO-Scriptauführung unterdrückt, die Ursache sein. Insbesondere von Norton AV ist dies vielen ASP-Programmierern bekannt. Dies nur als Hinweis.

    Grüsse,
    Uwe

    Ich möchte per ASP Script eine Datei löschen. Im Prinzip auch kein Problem. Ich habe ein Script geschrieben, dass mit dem PWS auf meinem Rechner funktioniert.

    Mein Problem ist: Ich lege es auf meinen eigenen Server und starte das Script. Geht aber nicht denn: Erlaubnis verweigert.

    Aha denke ich und stelle die Rechte in dem Ordner auf ändern, schreiben, lesen usw. Aber es geht immer noch nicht. Wie kann das sein? Ich habe alles probiert. Wieso hat mein Script nicht die Erlaubnis, eine Datei zu löschen?

    Greetings
    Legolas