2013-02-05 2 views
0

J'ai un service Windows écrit en C#. J'ai récemment ajouté CassiniDev pour permettre l'administration Web à distance et la surveillance du service. L'intégration s'est très bien passée, à l'exception de mon incapacité à interagir avec la couche de données de mon service Windows à partir de pages ASP.NET hébergées.Partager des données entre le service Windows et Cassini-dev en cours d'exécution dans le même processus

J'ai essayé de placer tout ce qui m'intéresse dans un assemblage commun, mais le débogueur montre qu'il y a deux assemblys chargés avec le même nom mais de chemins différents. Cassini exécute ASP.NET à partir d'un dossier temporaire de sorte que l'assemblage que j'utilise est vraiment "une instance différente" dans l'espace d'adressage du même processus.

Je ne suis pas sûr de ce qui se passe ici. Probablement des trucs de "domaine d'application" que je ne comprends pas pour le moment.

Donc, avec le service Windows et le serveur Web s'exécutant dans le même processus, comment puis-je les faire interagir? Dites que j'ai un état dans la partie Service que je veux signaler dans la partie ASP.NET. Des idées comment je pourrais y arriver? La mémoire partagée ou TCP me vient à l'esprit, mais cela ressemble à une surpuissance pour une communication purement intra-processus.

Répondre

1

Si la sécurité n'est pas une préoccupation immédiate, c'est-à-dire que les données ne sont pas très sensibles et dans un environnement contrôlé, alors vous pourriez avoir du succès en utilisant Named Pipes. Une API managée pour le traitement des tuyauteries a été implémentée dans le cadre de l'infrastructure. Vous n'avez donc pas besoin de réfléchir aux appels natifs.

+0

J'ai suivi votre conseil et mis en place un mécanisme de communication utilisant des tubes nommés simples. – wpfwannabe

Questions connexes