c# DLL Aufruf über Netzlaufwerk bei den Dienstanwendungen

13/06/2008 - 11:21 von h.kaya486 | Report spam
Hallo allerseits,
ich habe folgendes Problem in einer Windows-dienst- Anwendung:
Ich habe eine Dienstanwendung, der über eine Netzlaufwerk "P:\" von
einem Host eine DLL und ihre Funktionen importieren soll.

Rufe ich DLLImport [DllImport ("MyDLL.dll")] , so funktionirt die
Dienstanwendung problemlos (in diesem Fall ist die DLL in System32-
Verzeichnis koppiert).

Wenn aber z.B DLLImport so aufgerufen wird, [DllImport(@"P:\exe
\MyDLL.dll")] dann;

1. führe ich die Funktion über Debugger funktioniert die Anwendung
auch.
2. Starte ich die Anwendung als Dienst, wird (vermute ich) das
Netzlaufwerk nicht gefunden. Die Funktionen der DLL werden nicht
ausgeführt.

Kann mir jemand da weiterhelfen?

vielen Dank im Voraus
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
14/06/2008 - 17:13 | Warnen spam
schrieb:
Wenn aber z.B DLLImport so aufgerufen wird, [DllImport(@"P:\exe
\MyDLL.dll")] dann;

1. führe ich die Funktion über Debugger funktioniert die Anwendung
auch.
2. Starte ich die Anwendung als Dienst, wird (vermute ich) das
Netzlaufwerk nicht gefunden. Die Funktionen der DLL werden nicht
ausgeführt.



Kannst Du innerhalb des Dienstes prüfen, ob Zugriff auf das Netzlaufwerk
besteht?

Falls Zugriff besteht, wird eine Ausnahme beim Aufruf der Funktion
ausgelöst? Evtl. könnte PInvoke mit 'SetDllDirectory' helfen, um den
Suchpfad dynamisch zur Laufzeit festzulegen.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen