IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ ASP.NET/VB.NET

logo
Sommaire > Web Services
        Qu'est-ce qu'un Web Service ?
        Les technologies évoluent, est-ce également le cas pour les Web Services ?
        Que contient le fichier .wsdl ? Est-il nécessaire ?
        WSE, quelle version pour qui ?
        Comment créer son premier Web Service ?
        Comment faire du tracing dans un Web Service ?
        Comment exposer une classe ?
        Comment utiliser l'héritage dans les Web Services ?
        Comment personnaliser les exceptions levées par les services Web ?
        Je reçois l'erreur 'Visual studio has detected that the web server is running ASP.NET 1.0 the web application you are creating or opening can be configure to be compliant ASP.NET 1.1', que faire ?
        Comment générer un WSDL sans le générer pour un protocole particulier ?
        Comment définir dynamiquement la référence vers un WebService?
        Comment appeler une méthode Web sans attendre de réponse du serveur ?



Qu'est-ce qu'un Web Service ?
auteur : Stéphane Reip
Selon le W3C:

"Un service Web est un système logiciel conçu pour soutenir l'interaction de machine-à-machine de façon interopérable sur un réseau. Il fait décrire une interface dans un format compréhensible par toutes machines (spécifiquement WSDL). D'autres systèmes agissent réciproquement avec le service du Web dans une façon prescrite selon sa description utilisant des messages SOAP, typiquement transmise via HTTP avec une sérialisation XML en conjonction avec les autres normes (standards) Web."


Les technologies évoluent, est-ce également le cas pour les Web Services ?
auteur : Stéphane Reip
Dans le cas des Web Services, on peut parler de WSE.

Derière cet acronyme se cachent simplement les mots : Web Service Enhancements (grossièrement traduit par Perfectionnements des Services Web). Il s'agit de suppléments apportés au SDK .NET afin de rester à jour avec les dernières spécifications des Services Web, ces dernières ayant beaucoup évolué ces dernières années. Ces compléments apportent également de nouveaux outils et des facilités de programmation aux développeurs.


Que contient le fichier .wsdl ? Est-il nécessaire ?
auteur : Stéphane Reip
Un document WSDL est un fichier XML définissant les services Web comme un ensemble d'opérations et de messages (arguments, types de données, .) reliés à des protocoles et des serveurs réseaux.

Le langage de description WSDL (Web Service Description Language) est une spécification issue de la problématique de la description des services Web. Il fallait une description des services Web qui puisse être comprise de tous les consommateurs, quelque soit leur plate-forme ou leur langage de programmation. Le but d'un document WSDL est donc de décrire dans un langage universel un service Web.


WSE, quelle version pour qui ?
auteur : Stéphane Reip
Les évolutions étant relativement fréquente, je vais vous donner ici les versions actuelles, mais pour avoir le dernier cri, n'hésitez pas à visiter le site Microsoft dédié aux Services Web.

Pour les utilisateurs de Visual Studio 2003, on optera pour WSE 2.0 Service Pack 3

Pour ceux qui auraient la joie de posséder Visual Studio 2005, on prendra le WSE 3.0 (A noter qu'il est compatible avec Windows Communication Foundation).


Comment créer son premier Web Service ?
auteur : Stéphane Reip
Pour créer un Service Web, vous pouvez utiliser l'assistant :

  • Fichier-> Nouveau -> Projet
  • Votre langage -> ASP.NET Web Service

Un premier Service Web vous sera ouvert à titre d'exemple, le bon vieux HelloWorld (Il suffit d'enlever les commentaires). Une petite compilation et votre premier Service Web est en place. Pour plus d'informations, rendez-vous dans la partie article de votre site préféré ;).


Comment faire du tracing dans un Web Service ?
auteur : Stéphane Reip
Malgré leur lien avec ASP.NET, les Services Web ne peuvent pas utiliser le TraceContext. Il reste donc le bon vieux duo Trace/TraceListener et les outils liés N4Log, etc.

On peut également très facilement utiliser les EventLogs à l'aide de la fonction statique

					
Microsoft.Web.Services2.Diagnostics.EventLog.WriteLine("votre texte")

				

Comment exposer une classe ?
auteur : Stéphane Reip
Pour qu'un Service Web expose votre classe, il faut préciser votre classe en valeur de retour à votre WebMethod. Le fichier WSDL sera généré automatiquement en fonction de votre classe pour autant qu'elle soit sérialisable.

					
<WebMethod> _
Public Function GetClasse() As MaClasse 
End Function

				

Comment utiliser l'héritage dans les Web Services ?
auteur : Stéphane Reip
Pour pouvoir utiliser l'héritage, il " suffit " de définir la classe " mère " en valeur de retour à votre méthode et de définir grâce aux attributs les classes héritées pouvant être retournées par votre méthode.

					
<WebMethod()> _
<System.Xml.Serialization.XmlInclude(GetType(String))> _
Public Sub SetObjet(ByVal maVariable As String)
End Sub

				

Comment personnaliser les exceptions levées par les services Web ?
auteur : Mehdi Feki
La classe SoapException permet de personnaliser les exceptions en construisant une nouvelle instance avec un message décrivant l'exception.


					
<WebMethod(Description = "Comment lever une exception personnalisée dans un service Web ?")>_
Public Function Diviser(ByVal a As Integer, ByVal b As Integer) As Integer
	Try
		Return a / b
	Catch ex As DivideByZeroException
		Throw New System.Web.Services.Protocols.SoapException("La division par 0 est impossible", SoapException.ClientFaultCode, Context.Request.Url.AbsoluteUri, ex)
	End Try
End Function

				

Je reçois l'erreur "Visual studio has detected that the web server is running ASP.NET 1.0 the web application you are creating or opening can be configure to be compliant ASP.NET 1.1", que faire ?
auteur : Stéphane Reip
Cette erreur arrive généralement lorsqu'on débute et que notre serveur IIS est éteint ou rencontre un problème lors de son démarrage. Suivant votre processus d'installation du framework .NET, il est parfois nécessaire d'enregistrer votre compte ASP.NET par la ligne de commande DOS suivante (démarrer-> exécuter)

					
%windir%\microsoft.net\framework\v1.1.4322\aspnet_regiis -i

				
Le numéro de version du framework devant être adapté à votre configuration.


Comment générer un WSDL sans le générer pour un protocole particulier ?
auteur : Didier Danse
Il arrive parfois que générer un WSDL utilisant un protocole trop récent pose quelques soucis. Dans ce cas, indiquez dans le web.config qu'il ne faut pas générer ce WSDL pour un ou plusieurs protocoles particuliers. Dans l'exemple ci-dessous, il s'agit de SOAP 1.2.

					
<system.web>
	<webServices>
		<protocols>
			<remove name="HttpSoap12"/>
		</protocols>
	</webServices>
</system.web>

				

Comment définir dynamiquement la référence vers un WebService?
auteur : Didier Danse
Lors du développement, ajoutez votre référence de manière tout à fait classique. Il est nécessaire pour connaître les méthodes exposées par le Web service.

Ainsi, dès que votre application connaît votre Web Service, peu importe où il se trouve. On peut donc lui assigner l'adresse du Web Service au runtime.

Dans le web.config, vous devez dès lors ajouter un ensemble clé / valeur nommé Service1Url et l'utiliser à l'aide du code suivant:

					
Dim service As Service1 = New Service1()
service.Url = ConfigurationManager.AppSettings["Service1Url"]

				

Comment appeler une méthode Web sans attendre de réponse du serveur ?
auteurs : Mehdi Feki, nico-pyright(c)
Dans certains cas, le client ne veut pas attendre une réponse du serveur après avoir appelé un service Web. L'attribut OneWay indique au serveur que le client ne veut pas recevoir d'acquittements et que sa tâche s'arrête à l'appel de la méthode Web.


					<SoapDocumentMethod(OneWay:=True), _
WebMethod(Description:="Comment appeler une méthode Web sans attendre une réponse du serveur ?")> _
Public Sub SaveToLog(ByVal logEntry As String)
	Dim FaqLog As EventLog = New EventLog("OneWayAttributeDemo")
	FaqLog.Source = "OneWayAttributeDemo"
	FaqLog.WriteEntry(logEntry, EventLogEntryType.Information)
End Sub

				


Consultez les autres F.A.Q's


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.