2009-03-03 7 views
2

J'ai une application .Net 3.0 qui doit transmettre un entier à un autre programme sur la même machine. J'utilisais un service WCF pour ce faire, mais j'ai rencontré des problèmes de droits d'utilisateur en essayant d'héberger le service sur la boîte locale. Toute réflexion sur la façon d'accomplir ceci serait grandement appréciée.Comment passez-vous un message d'un programme à un autre?

Merci,

Dave

+0

Pour XP: http://www.leastprivilege.com/HttpCfgACLHelper.aspx –

Répondre

4

WCF est encore le chemin à parcourir ici.

Généralement, pour une communication entre processus sur la même machine, vous utiliseriez le canal de canal nommé. Si vous n'utilisez pas cela, je vous suggère de le faire et de déterminer ensuite quelle est l'erreur dans l'hébergement. Si les deux programmes ont des boucles de messages en cours de traitement et que vous envoyez un entier, vous pouvez aussi utiliser un appel à SendMessage via la couche P/Invoke, mais uniquement parce que vous envoyez des données égales à ou plus petit que ce que SendMessage permettra. Les messages plus importants nécessiteront quelque chose comme WCF.

0

.NET Remoting est un moyen de transmettre des messages entre les programmes.

+0

Remoting est largement obsolète. –

0

Comment hébergiez-vous? Notez qu'un programme non-administrateur utilisant http aura besoin d'autorisations pour utiliser le port (dans http.sys). C'est via netsh (Vista) ou (IIRC) httpcfg (XP).

Voir here, par exemple.

+0

C'est là que j'ai rencontré le problème. Nous sommes un environnement géré XP et tout le monde a des autorisations min. address = "http: // localhost: 9571/ReplayCatcher" binding = "basicHttpBinding" – user38349

+0

Cela pourrait aider: http://www.leastprivilege.com/HttpCfgACLHelper.aspx –

Questions connexes