2016-03-16 3 views
0

Juste une petite question, je l'espère, quelqu'un peut me diriger dans la bonne direction. Dans notre application web .net, nous essayons d'implémenter un périphérique tiers qui est associé à l'ordinateur de l'utilisateur. Afin de générer cette paire dans notre projet, nous devons être en mesure de tirer le nom de l'ordinateur des utilisateurs actuels, ou l'adresse IP. Dans une application winforms, cela serait plus facile car il réside sur le réseau des utilisateurs. Comme il s'agit d'une application Web, cela a été assez difficile car la seule chose renvoyée est l'adresse IP du serveur ou le nom du serveur. Donc, ce que nous envisageons de faire maintenant, c'est d'avoir un service Windows, ou une application WinForms, que nos clients peuvent télécharger et qui retournera cette information à notre application. Création de l'application Windows Service ou WInForms est simple et je comprends que, ma question est comment puis-je obtenir mon application Windows Service ou WinForms pour envoyer des données à l'application Web? J'ai regardé dans WCF mais il semble que l'utilisateur final devrait mettre en place des arrangements de tcp sur leur extrémité qui pourraient être difficiles pour certains et je voudrais éviter. Si quelqu'un a des suggestions autres que la WCF, je suis ouvert à cela aussi.Envoi de données entre le service Windows et l'application Web

Toutes les suggestions sur comment cette situation devrait être traitée apprécié, merci.

+0

si vous expliquez ce que vous essayez de faire, un exemple complet, et je vais vous dire comment. – thepanch

+0

Im essayant d'obtenir le nom d'ordinateur d'utilisateurs ou l'adresse IP. Comme cela est difficile à faire à travers le serveur web, je pensais à créer un service Windows que les clients installeraient de leur côté.Ce service obtiendra le nom de l'ordinateur, l'application Web va alors saisir le nom de l'ordinateur de ce service de fenêtre et l'utiliser pour coupler avec le périphérique tiers via l'application – code

+0

ok je réponds en bas – thepanch

Répondre

0

Je suppose que vous ne comprenez pas le concept de service Web ou de WCF ou de toute autre technologie que vous utilisez. Un service Web est une «fonction» appelée par un client mais s'exécutant sur le serveur. Ainsi, lorsque vous effectuez un WCF et que vous l'utilisez depuis un autre site Web ou une application de bureau, vous êtes en fait envoyer les données à ce serveur. Dans d'autres cas, si vous essayez d'obtenir un moniteur en "temps réel", en envoyant des données au serveur et en les affichant sur votre site Web, vous devez effectuer des opérations distinctes.

Voici ce que vous devez faire. Commencez par configurer un service WCF qui gérera les informations de votre côté SERVEUR. Dans ce cas, vous devez implémenter une fonction qui recevra un nom d'IP et d'ordinateur (ou ce dont vous avez besoin) et retourner le hachage, la clé ou les informations que vous utilisez pour coupler le périphérique, puis l'héberger sur un serveur IIS.

`chaîne publique PairDevice (nom de chaîne, IP de chaîne, string ....) {

//save to database, do something and return the hash. 

}`

Second créer un service Windows, une application de bureau ou quelque chose qui sera en cours d'exécution sur l'ordinateur CLIENT, là vous devez CONSOMMER le WCF, dans votre code principal, vous récupérerez tous les paramètres dont vous avez besoin pour votre fonction WCF, puis en ajoutant un "Service Reference", vous serez disponible pour utiliser la fonction REMOTE sur votre CLIENT, sachez que votre SERVICE doit être joignable par l'application.

//retrieve IP, name, etc string name; string ip; myWCFclass WCF= new myWCFclass(); string myHash=WCF.PairDevice (name,ip,etc...); //thats all.

Et c'est tout que vous devez faire, si vous avez besoin de plus d'aide sur la façon dont WCF fonctionne, je vous suggère de lire ce lien

http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

+0

Donc @thepanch si je comprends bien le Windows Service enverrait des données à mon WCF (ou service Web) puis WCF l'enregistrerait dans la base de données ou un fichier? – code

+0

Je peux héberger le dans un Windows Service je ne peux pas? – code

+0

NON, vous ne pouvez pas héberger un WCF dans le service Windows, il doit être "visible" donc vous devez le placer sur un IIS. – thepanch