2015-08-08 2 views
0

Je ne parviens pas à exécuter les opérations suivantes à partir d'une application Web asp.net. System.Diagnostics.Process.Start ("Notepad.exe");System.Diagnostics.Process.Start ("Notepad.exe"); ne fonctionne pas sur le serveur en direct

Le projet se construit sans erreur et fonctionne correctement localement. Sur le serveur live, ça expire juste. J'ai passé des heures à faire des recherches en ligne, seulement pour trouver qu'il y en a d'autres qui ont eu le même problème. Jusqu'à présent rien n'a fonctionné pour moi. La plupart des réponses semblent suggérer de regarder les autorisations. Notre directeur informatique n'est pas sûr de savoir comment résoudre ce problème.

+7

Quelle est l'utilisation possible pour le client pour ouvrir le bloc-notes sur le serveur? Vous ne vous attendiez pas à ce qu'il s'ouvre sur le client, n'est-ce pas? Les services ne sont pas autorisés à interagir avec le bureau sous Windows, donc votre serveur web n'ouvrira jamais l'interface utilisateur du bloc-notes ... Compte tenu de tout cela, je pense que cette question est absurde. (Il fonctionne localement car, selon toute probabilité, vous utilisez le serveur de développement en tant qu'administrateur dans une session utilisateur ... un environnement très différent) – spender

+0

spender: Vous pouvez donner aux clients l'accès à des exécutables sur un serveur. Vous devez créer un compte de groupe pour autoriser l'accès et définir les informations d'identification sur l'exécutable pour autoriser le compte de groupe. Cela devrait être fait dans des cas limités, car vous ne voulez pas que les intrus se retrouvent sur le serveur. – jdweng

+0

@jdweng Bien sûr, mais vous ne verrez jamais une interface de bureau lancée depuis un service. [Ce n'est pas autorisé] (https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms683502%28v=vs.85%29.aspx). – spender

Répondre

0

Vous exécutez probablement l'application Web sur IIS Express localement. Cela signifie que tout ce qui ouvre le Bloc-notes peut fonctionner, car il fonctionne sous votre compte dans votre session.

Cependant, en cours d'exécution sur toute IIS est complètement une autre chose, comme l'a révélé dans mon blog,

https://blog.lextudio.com/2015/04/web-application-differences-in-visual-studio-and-iis/

Même si le Bloc-notes est ouvert de cette façon, il est en session 0 sur le côté serveur IIS et vous ne pouvez pas le voir. Si vous tentez d'ouvrir le Bloc-notes en JavaScript côté client, vous pouvez également être interdit de le faire, car les navigateurs exécutent des applications Web côté client dans les sandbox, ce qui supprime l'accès aux ressources du système d'exploitation. Habituellement, seules les applications Web qui explorent les failles de sécurité dans les navigateurs Web peuvent lancer Notepad en contournant le sandbox ainsi que d'autres mécanismes de protection de sécurité, et vous ne serez probablement pas autorisé à le faire dans une application Web normale.