Domanda

Due settimane fa avevo bisogno di un modo per comunicare un servizio wcf con un servizio Windows in esecuzione sullo stesso computer. Il servizio Windows ha dovuto ottenere dati da una fonte esterna e condividerli con il servizio WFC (ospitato in IIS) che ha dovuto fornirli quando un client ha effettuato una richiesta. Ho scelto di farlo con ipc.

L'ho fatto e ora il servizio windows è il server ipc e il servizio wcf è il client ipc. Questo va bene ma penso di aver fatto un errore nel farlo perché per farlo funzionare correttamente il servizio Windows deve essere eseguito con l'account ASPNET, per questo l'account password ASPNET deve essere assegnato e quando lo faccio l'IIS non funziona correttamente .

Sto pensando a diverse alternative, ma in ognuna di esse il problema persiste. Qualche idea?


Modifica:

Ciò di cui avevo bisogno era un sistema che rendesse pubblico, in un servizio web ospitato in IIS, i dati ottenuti tramite telnet da un altro vecchio sistema, che è un po 'instabile. Per quanto la risposta di questo secondo sistema fosse lenta, ho scelto di inserire un processo (il servizio Windows) tra il servizio Web e il vecchio sistema. Il servizio windows ha dovuto salvare i dati raccolti dal vecchio sistema e quando il servizio wcf gli ha chiesto di dare tutto in una volta tramite ipc.

È stato utile?

Soluzione

Perché non creare un altro account con lo stesso set di autorizzazioni dell'utente ASPNET in cui vengono eseguiti sia il servizio WCF che l'altro servizio? In questo modo, hai il controllo della password.

Altri suggerimenti

Perché il servizio Windows deve essere eseguito come utente ASPNET? È perché stai utilizzando una connessione IPC che richiede l'autenticazione dal chiamante?

Un'altra alternativa (se si ha il controllo sul codice del servizio Windows) sarebbe quella di rendere anche un servizio WCF (usando un ServiceHost nel servizio Windows). Il servizio IIS potrebbe connettersi al servizio Windows utilizzando un'associazione NetTcp o NetNamedPipe se sono necessarie prestazioni simili a IPC.

Idealmente, il servizio Windows dovrebbe essere eseguito come un servizio WCF, in questo modo è facile per il client comunicare con esso.

La domanda successiva è il tempo in cui il "client" deve essere un servizio WCF. Se questo client deve servire altre applicazioni, è appropriato, altrimenti potrebbe non essere essenziale. Non so abbastanza del tuo sistema, quindi spetta a te decidere quale sia la migliore!

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