INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DLL Fileserver Problem



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

17.04.2013, 12:09
Beitrag #1

F.Bi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 152
Registriert seit: Oct 2007

LabView 2016
2007
EN

55218
Deutschland
DLL Fileserver Problem
Ich benutze in einem Projekt eine DLL von rotronic (Ich bin mir nicht sicher, ob ich diese weitergeben darf, aber ohne die nötige Hardware bringt das eh nichts.), die zurzeit auf meiner internen Festplatte (Lw. D:\ordner\test...) liegt. Da sich der Rest des Projekts aber auf einem Fileserver (\\name\ordner...\projekt xyz) befindet, soll auch die DLL dort abgelegt werden. Einfach verschieben und eine Anpassung des Pfades bringen nicht den Erfolg . (Aufruf über Constructor Node, Invoke Node usw.).
Die Exe funktioniert zwar (Installer auf einem anderen lokalen PC), aber in der Entwicklungsumgebung liefert das VI nicht das Signal, ist dort also nicht zu gebrauchen.

Das Problem scheint eine Sicherheitsrechtlinie zu sein, die den Zugriff auf den Server verhindert.

Das Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe) müsste das beheben, allerdings müsste ich wissen, welche Parameter ich setzen müsste. http://msdn.microsoft.com/de-de/library/...s.80).aspx

Kann mir da jemand Hilfestellung leisten, der sich in der Materie besser auskennt?

Gruß
Frank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.04.2013, 19:05
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: DLL Fileserver Problem
(17.04.2013 12:09 )F.Bi schrieb:  Ich benutze in einem Projekt eine DLL von rotronic (Ich bin mir nicht sicher, ob ich diese weitergeben darf, aber ohne die nötige Hardware bringt das eh nichts.), die zurzeit auf meiner internen Festplatte (Lw. D:\ordner\test...) liegt. Da sich der Rest des Projekts aber auf einem Fileserver (\\name\ordner...\projekt xyz) befindet, soll auch die DLL dort abgelegt werden. Einfach verschieben und eine Anpassung des Pfades bringen nicht den Erfolg . (Aufruf über Constructor Node, Invoke Node usw.).
Die Exe funktioniert zwar (Installer auf einem anderen lokalen PC), aber in der Entwicklungsumgebung liefert das VI nicht das Signal, ist dort also nicht zu gebrauchen.

Das Problem scheint eine Sicherheitsrechtlinie zu sein, die den Zugriff auf den Server verhindert.

Das Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe) müsste das beheben, allerdings müsste ich wissen, welche Parameter ich setzen müsste. http://msdn.microsoft.com/de-de/library/...s.80).aspx

Kann mir da jemand Hilfestellung leisten, der sich in der Materie besser auskennt?

Ist das eine ActiveX oder eine .Net DLL? Bei ActiveX muss wahrscheinlich die DLL am neuen Platz korrekt registriert werden um geladen werden zu können, bei .Net siehts aber schlecht aus. .Net DLLs werden normalerweise nur aus dem Verzeichnis geladen in dem das aktuelle Executable liegt oder müssen in der GAC (Global Assembly Cache) liegen. LabVIEW fügt da beim Ausführen aus der Entwickelumgebung noch explizit das Verzeichnis des aktuellen Projekts hinzu.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2013, 07:01
Beitrag #3

F.Bi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 152
Registriert seit: Oct 2007

LabView 2016
2007
EN

55218
Deutschland
RE: DLL Fileserver Problem
Das Problem gibt es nicht mit der Executable, da dort die DLL im entsprechenden Ordner auf der interen Festplatte liegt, sondern nur mit der Entwicklungsumgebung, wenn die DLL nicht auf der internen Festpatte sondern auf dem Fileserver im Projektverzeichnis liegt.

Bei DLLs kenne ich mich nicht aus, ich nehme an, dass es sich um eine .Net DLL handelt (siehe Bilder im Anhang).


Angehängte Datei(en) Thumbnail(s)
       

Gruß
Frank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2013, 20:29
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: DLL Fileserver Problem
(18.04.2013 07:01 )F.Bi schrieb:  Das Problem gibt es nicht mit der Executable, da dort die DLL im entsprechenden Ordner auf der interen Festplatte liegt, sondern nur mit der Entwicklungsumgebung, wenn die DLL nicht auf der internen Festpatte sondern auf dem Fileserver im Projektverzeichnis liegt.

Bei DLLs kenne ich mich nicht aus, ich nehme an, dass es sich um eine .Net DLL handelt (siehe Bilder im Anhang).

Das sieht nach .Net aus und bedeutet dass die DLL nur im LabVIEW Verzeichnis, im Projektverzeichnis, und in der GAC liegen kann. Irgendwo anders wird immer Problem geben. Im Falle von normalen (nicht-LabVIEW) Programmen entfällt sogar das Projektverzeichnis.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2013, 08:51 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2013 08:53 von F.Bi.)
Beitrag #5

F.Bi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 152
Registriert seit: Oct 2007

LabView 2016
2007
EN

55218
Deutschland
RE: DLL Fileserver Problem
Ich habe jetzt noch einmal verschiedene Ablageorte der DLL ausprobiert.
Betroffen ist nur die Entwicklungsumgebung.
Auf der internen Festplatte spielt der gewählte Ordner keine Rolle, also nicht nur im Projektverzeichnis, da kann sie irgendwo sein.
Sobald sie aber auf dem (externen) Fileserver liegt, liefert sie keine "Daten", unabhängig davon, ob sie im Projektverzeichnis im Root zusammen mit der lvproj-Datei liegt oder im SubVI Verzeichnis zusammen mit den VIs, die die DLL nutzen.

Microsoft verhindert einen Zugriff auf DLLs, die nicht lokal abgelegt sind. Mit dem Sicherheitsrichtlinientool für den Codezugriff müsste es möglich sein, dieses "Verhalten" zu ändern, allerdings blicke ich bei den Parametern nicht durch.

Auf dem ZielPC liegt die DLL mit der Executable zusammen in einem Verzeichnis auf der lokalen Festplatte und funktioniert ohne Probleme.

Gruß
Frank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: