Pourquoi mon .NET de plantage de l'application lors de l'exécution à partir d'un lecteur réseau?
Mon .NET application échoue lorsqu'il est exécuté à partir d'un lecteur réseau, même lorsque le même exécutable fonctionne parfaitement bien à partir d'un disque dur local?
J'ai essayé de vérifier pour la "confiance totale" de la sorte:
try
{
//Demand full trust permissions
PermissionSet fullTrust = new PermissionSet( PermissionState.Unrestricted );
fullTrust.Demand();
//Perform normal application logic
}
catch( SecurityException )
{
//Report that permissions were not full trust
MessageBox.Show( "This application requires full-trust security permissions to execute." );
}
Cependant, ce n'est pas l'aider, je veux dire l'application démarre et le bloc catch n'est jamais entré. Cependant, une version de débogage montre que l'exception levée est une SecurityException causée par une InheritanceDemand. Des idées?
- Lorsque vous dites qu'il "échoue", comment exactement est-il un échec? Existe-il des erreurs?
- Le code que vous écrivez va dans le Catch?
- juste eu ce même problème aujourd'hui et n'ai PAS trouvé une solution encore, regardent cette question...
InformationsquelleAutor Paul Smith | 2008-09-29
Vous devez vous connecter pour publier un commentaire.
En effet, il en a à faire avec le fait que les apps sur un emplacement réseau sont moins digne de confiance, puis sur votre disque dur local (en raison de la politique par défaut de la .NET framework).
Si je ne me trompe pas, Microsoft a finalement corrigé cette nuisance .NET 3.5 SP1 (après beaucoup de développeurs se plaindre).
Je google l'avais: .NET Framework 3.5 SP1 Permet de code managé pour être lancé à partir d'un partage réseau!
Avez-vous essayez d'Utiliser CasPol à faire Entièrement Confiance à un Partage?
Vous avez déjà fait cela, mais vous pouvez utiliser CasPol.exe pour activer FullTrust pour un partage réseau spécifié.
Par exemple
Plus d'infos ici.
C:\Windows\Microsoft.NET\Framework\v4.0.30319>CasPol.exe -m -ag 1.2 -zone Intranet FullTrust
Si ce n'est .NET 2.0 ou supérieur, ClickOnce a été créé pour aider vraiment avec ce déploiement de trucs. Je ne déployer qu'à des partages réseau à l'aide que.
C'est la sécurité intégrées par microsoft dans le .net framework. C'est une façon d'arrêter les logiciels malveillants d'exécuter localement, avec plein de privilèges, de sorte que vous ne pouvez pas modifier par programmation dans le code.
Ce que vous devez faire est d'accroître la confiance des assemblées spécifiques. Vous faites cela dans la .NET Framework Configuration (Panneau de configuration->Outils d'Administration), et doit être fait sur chaque ordinateur.
Comme avec toutes les mesures de sécurité, c'est une douleur dans le cul, mais aidera le monde à être moins infecté etc...
Tout ce que j'avais à faire était de marquer les fichiers en Lecture Seule (probablement sans rapport) et de donner à tous à l'exception des autorisations Contrôle total pour les Utilisateurs Authentifiés. J'étais confronté à ce problème avant, je l'ai fait, quand j'ai eu le réseau ne partager que le programme d'installation pour les Utilisateurs du Domaine.
J'ai découvert cette solution de contournement, car ni l'admin actions (\serveur\C$), ni mon propre PC, les actions eu ce problème.
Edit: Application cible .NET 3.5, pas de SP1 ici (version 3.5.7283)