Zugriff verweigert

  • VB.NET

    Zugriff verweigert

    Ich hab jetzt schon eine weile mit Gugi hin und her geschrieben und diverse Probleme gelöst. Aber das hier iwrgentwie nicht.

    Ich erstele eine .ini Datei und will diese dann uploaden. Doch dann kommt eine Fehlermeldung da die Datei von einem Anderen Prozess verwendet wird. Ich habs auch schon mit der 9 sekunden Pause verscuht aber das bringt nichts :(

    Hier der Code:

    VB.NET-Quellcode

    1. Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32
    2. Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32
    3. Public Function INI_ReadValueFromFile(ByVal strSection As String, ByVal strKey As String, ByVal strDefault As String, ByVal strFile As String) As String
    4. 'Funktion zum Lesen
    5. 'strSection = Sektion in der INI-Datei
    6. 'strKey = Name des Schlüssels
    7. 'strDefault = Standardwert, wird zurückgegeben, wenn der Wert in der INI-Datei nicht gefunden wurde
    8. 'strFile = Vollständiger Pfad zur INI-Datei
    9. Dim strTemp As String = Space(1024), lLength As Integer
    10. lLength = GetPrivateProfileString(strSection, strKey, strDefault, strTemp, strTemp.Length, strFile)
    11. Return (strTemp.Substring(0, lLength))
    12. End Function
    13. Public Function INI_WriteValueToFile(ByVal strSection As String, ByVal strKey As String, ByVal strValue As String, ByVal strFile As String) As Boolean
    14. 'Funktion zum Schreiben
    15. 'strSection = Sektion in der INI-Datei
    16. 'strKey = Name des Schlüssels
    17. 'strValue = Wert, der geschrieben werden soll
    18. 'strFile = Vollständiger Pfad zur INI-Datei
    19. Return (Not (WritePrivateProfileString(strSection, strKey, strValue, strFile) = 0))
    20. End Function
    21. Private Sub anlegen()
    22. INI_WriteValueToFile("Settings", "Passwort", TextBox2.Text, Application.StartupPath & "/" & TextBox1.Text & ".ini")
    23. INI_WriteValueToFile("Settings", "Name", TextBox1.Text, Application.StartupPath & "/" & TextBox1.Text & ".ini")
    24. INI_WriteValueToFile("Syno", "Alter", "1", Application.StartupPath & "/" & TextBox1.Text & ".ini")
    25. MsgBox("Der Account wurde erstellt")
    26. MsgBox("Bitte warten, Account wird gespeichert...")
    27. System.Threading.Thread.Sleep(9000)
    28. speichern()
    29. End Sub
    30. Private Sub speichern()
    31. Dim client As New Net.WebClient
    32. client.Credentials = New Net.NetworkCredential("name", "passwort")
    33. client.UploadFile(Application.StartupPath & "" & TextBox1.Text & ".ini", "ftp://stepsel.bplaced.net/syno/82647391/" & Label5.Text & "/", TextBox1.Text & ".ini")
    34. End Sub
    evtl Adminrechte? Entsprechenden zugiff auf dem Server?

    Wenn die Datei von nem anderem Prozess verwendeet wird versuch mal herauszufinden, welcher Prozess das ist.

    mfg MAANtech
    This text is not available in your country
    Also es handelt sich hierbei um die datei auf meiner Festplatte nicht die auf dem Server. Ich habe auch WinXP und Adminrechte. Wie finde ich raus welcher Prozess das ist?
    Der Prozess kann nicht auf die Datei "C:\Dokumente und Einstellungen\Administrator\eigene dateien\visual studio 2010\Projects\Project Syno\Project Syno\bin\Debug\es.ini" zugreifen, da sie von einem anderen Prozess verwendet wird.

    Keiner ne Idee?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Flipez“ ()

    es ist der eigene prozess, der darauf zugreift, er erstellt sie und danach will er sie sofort hochladen.

    lg Gugi

    SystemUnknow schrieb:

    ja und wo ist da jetzt problem......den process beenden oder killen und die datei hochladen.

    wieso prozess beenden, wenn er sein programm killt, kann sein programm doch nicht mehr die datei hochladen.

    lg Gugi

    SystemUnknow schrieb:

    ...dann soll er fehler in seine code suchen !

    das ist ja das... ich finde in seinem code keinen fehler ^^
    edit: :!: 555 beiträge :!:

    Flipez schrieb:

    client.UploadFile(Application.StartupPath & "\" & TextBox1.Text & ".ini", "ftp://stepsel.bplaced.net/syno/82647391/" & Label5.Text & "/", TextBox1.Text & ".ini")


    Wenn ich mir mal die Dokumentation auf MSDN zu UploadFile anschaue, wird die iwie anders Verwendet. Kanns vlt da dran liegen?

    msdn.microsoft.com/en-us/library/ms144230.aspx
    msdn.microsoft.com/en-us/library/esst63h0.aspx

    Müsste das nicht mehr in diese Richtung hier gehen?

    VB.NET-Quellcode

    1. client.UploadFile(Application.StartupPath & "" & TextBox1.Text & ".ini", "STOR", "ftp://stepsel.bplaced.net/syno/82647391/" & TextBox1.Text & ".ini")


    mfg MAANtech
    This text is not available in your country
    Wenn ich das mit deinem Code mache stürzt er bei Webclient ab. Bei Details steht das das Pfadformat nict unterstützt wird. :(

    Flipez schrieb:

    Wenn ich das mit deinem Code mache stürzt er bei Webclient ab. Bei Details steht das das Pfadformat nict unterstützt wird. :(

    welchen text schreibst du denn in die textbox1? 100% sicher das die datei existiert(auch gross und kleinschreibung richtig?) ?
    in welchem pfad liegt die datei, liegt sie im program files ordner?, wenn ja brauchst du adminrechte.

    lg Gugi
    die datei wird erstellt, ich sehs ja weil ich den ordner auf hab und sie wird im debug ordner erstellt.

    Flipez schrieb:

    die datei wird erstellt, ich sehs ja weil ich den ordner auf hab und sie wird im debug ordner erstellt.

    dann braucht dein programm adminrechte, da der debug ordner im dokumenteordner ist.

    lg Gugi
    Habs jetzt mal auf meine zweite platte gescoben und da gings auch nicht, hat mir diesen fehler ins gesicht geschmissen:

    Spoiler anzeigen
    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.Net.WebException: Der Prozess kann nicht auf die Datei "D:\ich.ini" zugreifen, da sie von einem anderen Prozess verwendet wird. ---> System.IO.IOException: Der Prozess kann nicht auf die Datei "D:\ich.ini" zugreifen, da sie von einem anderen Prozess verwendet wird.
    bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
    bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
    bei System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing)
    bei System.Net.FileWebRequest.GetRequestStreamCallback(Object state)
    --- Ende der internen Ausnahmestapelüberwachung ---
    bei System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
    bei System.Net.WebClient.UploadFile(String address, String method, String fileName)
    bei Project_Syno.Form1.speichern()
    bei Project_Syno.Form1.anlegen()
    bei Project_Syno.Form1.registrieren()
    bei Project_Syno.Form1.Button3_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
    ----------------------------------------
    Project Syno
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///D:/Project%20Syno.exe.
    ----------------------------------------
    Microsoft.VisualBasic
    Assembly-Version: 10.0.0.0.
    Win32-Version: 10.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    ----------------------------------------
    System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Runtime.Remoting
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    ----------------------------------------
    System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    ----------------------------------------
    System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
    ----------------------------------------
    System.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.resources.dll.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

    Flipez schrieb:

    Habs jetzt mal auf meine zweite platte gescoben und da gings auch nicht, hat mir diesen fehler ins gesicht geschmissen:

    Spoiler anzeigen
    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.Net.WebException: Der Prozess kann nicht auf die Datei "D:\ich.ini" zugreifen, da sie von einem anderen Prozess verwendet wird. ---> System.IO.IOException: Der Prozess kann nicht auf die Datei "D:\ich.ini" zugreifen, da sie von einem anderen Prozess verwendet wird.
    bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
    bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
    bei System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing)
    bei System.Net.FileWebRequest.GetRequestStreamCallback(Object state)
    --- Ende der internen Ausnahmestapelüberwachung ---
    bei System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
    bei System.Net.WebClient.UploadFile(String address, String method, String fileName)
    bei Project_Syno.Form1.speichern()
    bei Project_Syno.Form1.anlegen()
    bei Project_Syno.Form1.registrieren()
    bei Project_Syno.Form1.Button3_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
    ----------------------------------------
    Project Syno
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///D:/Project%20Syno.exe.
    ----------------------------------------
    Microsoft.VisualBasic
    Assembly-Version: 10.0.0.0.
    Win32-Version: 10.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    ----------------------------------------
    System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Runtime.Remoting
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    ----------------------------------------
    System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    ----------------------------------------
    System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
    ----------------------------------------
    System.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.resources.dll.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.


    wie gesagt, ich denke es liegt an den adminrechten, bzw. am betriebsystem, ist bei jedem anders, ich brauch z.b nur im dokumenteordner, appdata, und program files adminrechte.

    lg Gugi
    Ich hab WinXP und bin Administrator, und es war jetzt auch nicht mehr im Dokumenten Ordner sondern im verzeichnis D:\.

    Wie hier zu sehen:

    Der Prozess kann nicht auf die Datei "D:\ich.ini" zugreifen, da sie von einem anderen Prozess verwendet wird

    Aber es erstellt ja die Datei auch, warum knn er sie dann nich hochladen...das kann doch niícht so schwer sein :(
    geb dem programm adminrechte, sonst sehe ich keinen grund das das nicht funktioniert. oder weist du nicht wie man das programm automatisch mit adminrechten startet?

    lg Gugi