. Avant l'introduction de la WCF , les services web développés dans le filet devait être hébergé dans Internet Information Server ( IIS). En . Net 3.0 , les options d'hébergement de services Web. Net a augmenté considérablement. WCF inclut un ServiceHost nommé classe qui permet aux services à être hébergés dans une application facilement . ServiceHost abstraction de la complexité technologique loin afin que les développeurs peuvent se concentrer sur la logique de service au lieu de la plomberie impliqués dans les services d'hébergement. Hébergement d'un service en dehors d'IIS nécessite l' exécution WCF et une application gérée . NET à agir comme hôte . Il est de la responsabilité du développeur d'écrire le code qui démarre et arrête l'hôte. Instructions
1
Sélectionnez "Nouveau" puis " Projet" dans le menu Fichier. La boîte de dialogue Nouveau projet s'affiche.
2
sélectionnez Visual C #, puis sur Windows dans la liste modèle de projet sur le dialogue Nouveau projet .
3
sélectionnez Application console de la liste des types de projet Windows. Indiquez un nom pour le projet dans la zone Nom . Le nom du projet doit être quelque chose lié à l' hébergement d'un service Web si possible.
4
Entrez un lieu dans la zone de localisation de la boîte de dialogue Nouveau projet. Sinon, cliquez sur "Parcourir" pour accéder à l'emplacement où le projet sera stocké. Cliquez sur « OK ». Visual Studio va créer une nouvelle application console.
5
Faites un clic droit SelfHost dans l'Explorateur de solutions . Ensuite, sélectionnez Ajouter une référence. Localisez System.ServiceModel dans l'onglet . NET et cliquez sur "OK". Cela va ajouter une référence à l' assembly System.ServiceModel qui est nécessaire pour développer ou héberger des services WCF.
6
Double -cliquez sur le fichier de classe qui a été ajouté lors de la création du projet . Dans la plupart des cas, il sera nommé Program.cs . Le code de la classe s'affiche.
7
clic-droit sur le nom du projet et sélectionnez " Ajouter une nouvelle classe . " Nommez la classe " HelloWorld " et entrez le code suivant :
utilisant System.ServiceModel ;
utilisant System.ServiceModel.Description ;
[ ServiceContract ]
< p > interface publique IHelloWorld
{
[ OperationContract ]
chaîne SayHello (string name ) ; }
public class HelloWorld : IHelloWorld
{
public string SayHello (string name )
{
string.Format de retour ( " Bonjour , {0}" , nom ) ; Photos
} }
Ce code est la mise en œuvre d'un exemple de service Web " HelloWorld " qui a une seule opération, " SayHello . "
8 < p> Double-cliquez sur la classe qui a été automatiquement ajoutée lorsque le projet a été créé. Dans la plupart des cas, la classe sera nommé Program.cs
9
Entrez le code suivant dans le haut de la classe :
utilisant System.ServiceModel ;
< p. > en utilisant System.ServiceModel.Description ;
10
Entrez le code suivant dans la méthode Main de la classe :
//définit l'adresse de base pour le service sur la machine locale
Uri baseAddress = new Uri ( " http://localhost:8080/hello ");
//Création de l'hôte de service
aide ( ServiceHost host = nouveau ServiceHost. (typeof ( HelloWorld ) , baseAddress ) )
{
//activer la publication de métadonnées
ServiceMetadataBehavior smb = new ServiceMetadataBehavior (); .
smb . httpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15 ;
host.Description.Behaviors.Add (SMB) ;
//Ouvrir le ServiceHost pour commencer écoute des messages
host.Open (); .
Console.WriteLine (" Le service est actif et peut recevoir la demande {0}" , baseAddress ) ;
Console . WriteLine ( " pour arrêter le service . ");
Console.ReadLine ();
//fermer le ServiceHost
host.Close . (); }
Ce code démarre l'hôte de service et crée une instance du service. Le service peut être appelé à partir d' un client jusqu'à ce que l'application de la console est fermée .