Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[FAQ] NET 2.0 Programm startet nicht vom Netzlaufwerk (SecurityException)
SatMAX
myCSharp.de - Member



Dabei seit:
Beiträge: 21
Herkunft: Biberbach, Österreich

Themenstarter:

[FAQ] NET 2.0 Programm startet nicht vom Netzlaufwerk (SecurityException)

beantworten | zitieren | melden

Hallo,

ich habe ein (selbst erstelltes) .NET 2.0 Prgramm. Starte ich das Programm auf einer lokalen Festplatte ist alles ok. Starte ich das Programm von einem Netzlaufwerk erhalte ich folgende Fehlermeldung:
Fehler
Could not load file assembly "MagicLibrary....... or one of ots dependencies. Failed to grant minimum permission request....

Im Prinzip war das unter .NET1.1 gleich. Nur gab es dort einen Wizard wo man die .NET Rechte einstellen konnte. Unter .NET2 müsste man dazu das gesamte SDK installieren, das kann doch auch nicht sein. Am Netzlaufwerk selbst habe ich alle Rechte.

Muss die APP irgendwie signiert werden? Bin für jeden Rat dankbar.

MfG
Markus
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

Folgende Antworten aus Konsolenanwendung von Netzlaufwerk starten sollten weiterhelfen:
Zitat von Pharao2k
Du musst der Anwendung FullTrust geben, was bei Programmen, welche übers Netzwerk gestartet werden, nicht standardmäßig der Fall ist.
Bei .NET Framework kann man das via Systemsteuerung>Verwaltung konfigurieren, bei allen späteren Versionen afaik via dem Programm Caspol.exe

und bezüglich er Verteilung der Einstellungen auf viele PCs:
Zitat von Pharao2k
Unter Vista würde das wohl nich gehen, aber unter XP müsste es möglich sein, den Caspol-Aufruf in eine Batch Datei zu verpacken und dann via Loginscript jeweils auf jedem PC aufrufen zu lassen.
BerndFfm
myCSharp.de - Team

Avatar #gvp27cjXxMEZQuCpk4WQ.jpg


Dabei seit:
Beiträge: 3737
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Oder starte caspol.exe. Ich habe mir dazu eine Batchdatei geschrieben :
echo off
if "%1"=="" goto notok

%WINDIR%\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -q -m -ag 1.2 -url file:%1/* FullTrust

echo.
echo Sie haben nun die Rechte um Dot.NET Anwendungen auf %1 auszufuehren !
echo.
goto ende

:notok
echo.
echo Geben Sie das Laufwerk auf dem sich die Dot.NET Anwendung befindet als ULN-Pfad an
echo z.B. \\Server\Laufwerksfreigabe.
echo Folgende Netzwerk-Freigaben werden von Ihrem Rechner benutzt :
net use
echo.

:ende

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
SatMAX
myCSharp.de - Member



Dabei seit:
Beiträge: 21
Herkunft: Biberbach, Österreich

Themenstarter:

beantworten | zitieren | melden

Ihr seids die Besten! Meine Entscheidung fiel auf die Batch-Lösung.

DANKE!
private Nachricht | Beiträge des Benutzers
Timur Zanagar
myCSharp.de - Member

Avatar #avatar-3412.jpg


Dabei seit:
Beiträge: 1559

Änderungen seit .NET 3.5 SP1

beantworten | zitieren | melden

Siehe hier: .NET 3.5 SP1 Runs Managed Applications From Network Shares
Zitat
Managed applications that are opened from network shares have [now] the same behavior as native applications by running with full trust.
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Und auch den hier: How to install MSCORCFG.MSC on an ordinary PC
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Als kleine Ergänzung im Zusammenhang mit WCF und Netzwerklaufwerken:
Auch der WcfSvcHost weigert sich standardmäßig, Assemblies von Netzwerklaufwerken zu laden.

In diesem Fall quittiert er allerdings mit folgender Fehlermeldung:
Fehler
WcfSvcHost encountered a critical error and must exit. This may be caused by invalid configuration file. Please inspect additional information below for detail.
System.IO.FileLoadException: Die Datei oder Assembly "file:///X:\[Path]\Server.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))
Dateiname: "file:///X:\[Path]\Server.dll" ---> System.ArgumentException: Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))
bei System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
bei System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
bei System.Reflection.Assembly.Load(AssemblyName assemblyRef)
bei Microsoft.Tools.SvcHost.ServiceHostHelper.LoadServiceAssembly(String svcAssemblyPath)

Die Lösung zu dem Problem findet sich in WCF Service Library - VS 2010 not working:
In der WcfSvcHost.exe.config muss folgende Zeile ergänzt werden:

<loadFromRemoteSources enabled="true"/>
private Nachricht | Beiträge des Benutzers