2010-11-04 10 views
1

Je dois donc configurer un service Web. Fondamentalement, nous envoyons des fichiers XML signés X509 à chacun via HTTP. Nous avons leur URL à laquelle nous devons envoyer des messages, donc l'envoyer n'est pas un gros problème, je peux le comprendre. Cependant, je dois faire savoir à la tierce partie à quelle URL ils peuvent poster de notre côté. Comment suis-je censé atteindre cette URL? Je veux configurer le service Web pour qu'il détecte automatiquement les demandes qui nous sont envoyées, extrait le XML signé du message soap et en fasse quelque chose, puis a la possibilité de formater une réponse SOAP en signant le XML notre fin en utilisant x509, et renvoyez-le sur HTTP. Est-ce que quelqu'un peut me donner une explication décente de la façon dont je voudrais mettre quelque chose comme ça dans Visual Studio 2008? Nous avons d'autres services qui ont un api.ashx qui ont des méthodes comme celle-ci:Vous cherchez une bonne explication sur le service Web SOAP

Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 

Mais au fond ce qui est cette URL que son saisissant HTTP à partir. Et puis-je configurer cela de la même manière?

+0

Salut Scott, c'est peut-être une bonne idée de reformuler le titre de votre question (pour l'amour de la postérité) car il n'est pas clair comment cela se rapporte à l'URL du service. Quelque chose comme "Comment l'URL d'un service SOAP est-elle déterminée?" De cette façon, quelques personnes de plus pourraient en bénéficier. – sheikhjabootie

Répondre

0

L'URL de votre service n'a rien à voir avec le SOAP ou l'un de ces éléments. Si vous avez généralement un service WCF (.svc) ou un service ASMX (.asmx), vous l'hébergerez quelque part dans un serveur Web - si vous utilisez http pour le mécanisme de transport. Donc l'URL - http://mywebserver.mydomain:80/a/b/c/myservice.svc - pourrait correspondre à un fichier de service appelé myservice.svc qui se trouve dans le dossier c, qui se trouve dans le dossier b, qui se trouve dans le dossier a, qui se trouve dans le répertoire racine du site web qui écoute le port 80 (il s'agit de la valeur par défaut et peut être omis) sur le serveur appelé mywebserver qui réside sur le domaine mydomain.

Un site Web peut contenir les répertoires virtuels ainsi que les répertoires normaux, ce qui peut être un peu plus compliqué.

Donc, si vous utilisez le site Web par défaut sur IIS et pas des répertoires virtuels, alors vous placez votre fichier de service ici: C: \ Inetpub \ wwwroot \ a \ b \ c \ myservice.svc

Espoir cela aide

3

Il y a quelques bonnes définitions de services Web SOAP là:

Quelques exemples sur la façon de créer des services Web dans .NET:

Avec ces articles et certains googler ne m'a pas pris trop longtemps pour mettre en place un petit service Web au service qui se comporte comme une API externe à notre application.

+0

Ma question principale a été citée comme "Cependant, je dois faire savoir à la 3ème partie à quelle URL ils peuvent poster de notre côté Comment est-ce que je suis supposé atteindre cette URL?". – Scott

+0

@Scott - voir l'étape 2 du troisième exemple ci-dessus: "Ceci est le document WSDL que le client utilisera pour accéder à ce service." – leakyboat

0

L'URL que le client appellera votre service est "je suppose" en fonction de votre boîte à outils. Par exemple, Manual est votre ami.

Voici ce qu'offre Axis2c: Le service est déployé sous le répertoire de services. Ce qui est également pointé par votre serveur web.

Par conséquent, tout en services/MyCustomService se traduira par: http://yourip:port/axis2/services/MyCustomService

Avec votre trousse à outils SOAP, le critère d'évaluation pourrait avoir une mise en page différente. Un service sur MS toolkit que j'appelle actuellement est quelque chose comme: http://theirip:port/name/name.aspx/serviceName

Cheers!

Questions connexes