title image


Smiley Datei im Netzwerk VB.NET
Hallo,



ich habe ein VB .NET Programm das auf einem Terminalserver laufen soll.

Das Programm muss dann einige Daten aus einer Access DB holen und eine

Datei erstellen.



Das Problem ist das die DB und der Ordner jeweils auf einem anderen

Rechner liegen.

Also:

PC1 -> Programm

PC2 -> DB

PC3 -> Ordner



Nun habe ich das so gelöst das immer vor einem Zugriff ein "net use"

durchgeführt werden soll.

Also ich habe dann einen extra User im Code mit verschlüsselten Passwort

das die Benutzer sonst keine Rechte haben.



Aus dem Grund erstell ich eine Verbindung ohne Laufwerk und Freigabe.

Also mit "net use \\pc2 /USER:User1 passwort /YES"

Die Verbindung wird dann auch sofort wieder getrennt.

"net use \\pc2 /DELETE"



Wenn ich da von Hand mach funktioniert auch alles. Aber wenn ich

das Programm ausführe kann er nur sehr selten auf die DB Zugreiffen.



Sonst kommt immer die Meldung das ich keine Berechtigung habe.

Wie schon erwähnt funktioniert der Zugriff wenn ich die "net use" Befehle

von Hand ausführe oder wenn ich die Verbindung im Programm nicht mehr trenne.



Allerdings muss er schon beim öffnen auf die MDB zugreiffen.

Aus diesem Grund öffnet er nicht mal das Programm.





Meine Frage ist ob ich das irgendwie einfache lösen kann oder warten kann

bis die Verbindung auch steht. Allerdings dauert das auch sehr lange.

Ich vermute das im Programm der "net use Befehl zu lange dauert und

er dann zu schnell versucht das Programm auszuführen.



Hier noch ein Auszug aus meinem Code:



Dim p As System.Diagnostics.Process _

= New System.Diagnostics.Process



With p.StartInfo

.FileName = "net.exe"

.CreateNoWindow = True

.RedirectStandardInput = True

.RedirectStandardOutput = True

.RedirectStandardError = True

.UseShellExecute = False

.Arguments = " use \\" & strServer & " /USER:" & strServer & "\" & strUser & " " & strPasswort & " /YES"



End With

p.Start()



objConnection = _

New OleDb.OleDbConnection _

("Provider=Microsoft.Jet.OLEDB.4.0; " & _

"Data Source=" & strPfad)



File.Copy(File1, File2)

.

.

.



Dim p As System.Diagnostics.Process _

= New System.Diagnostics.Process

If objConnection.State = ConnectionState.Open Then

objConnection.Close()

End If

With p.StartInfo

.FileName = "net.exe"

.CreateNoWindow = True

.RedirectStandardInput = True

.RedirectStandardOutput = True

.RedirectStandardError = True

.UseShellExecute = False

.Arguments = " use \\" & strServer & " /DELETE /YES"



End With

p.Start()



Wäre für jeden Tipp sehr dankbar.





MFG



mkbm

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: