Domanda

Ho un'applicazione .Net 3.0 che deve passare un numero intero a un altro programma sulla stessa macchina. Stavo usando un servizio WCF per farlo, ma ho riscontrato problemi con i diritti degli utenti quando ho provato a HOSTING il servizio nella casella locale. Qualsiasi pensiero su come realizzare questo woudld sarà molto apprezzato.

Grazie,

Dave

È stato utile?

Soluzione

WCF è ancora la strada da percorrere qui.

In generale, per la comunicazione tra processi sulla stessa macchina, si utilizza il canale pipe denominato. Se non lo stai utilizzando, ti suggerisco di farlo e quindi determinare qual è l'errore nell'hosting.

Se entrambi i programmi hanno cicli di messaggi che vengono elaborati e si sta inviando un numero intero, è possibile utilizzare una chiamata a SendMessage anche attraverso il livello P / Invoke, ma ciò è dovuto solo al fatto che si stanno inviando dati uguali o più piccolo di ciò che SendMessage consentirà. I messaggi più grandi richiedono qualcosa come WCF.

Altri suggerimenti

.NET Remoting è un modo per passare messaggi tra i programmi.

Come stavi ospitando? Si noti che un programma non amministratore che utilizza http avrà bisogno delle autorizzazioni per usare la porta (in http.sys). Questo avviene tramite netsh (Vista) o (IIRC) httpcfg (XP).

Vedi qui , ad esempio.

WCF è la strada da percorrere. Dovresti utilizzare NetNamedPipeBinding per proteggere nella stessa comunicazione della macchina.
Ulteriori informazioni su WCFBindings https://msdn.microsoft.com /en-us/library/ms730879(v=vs.110).aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top