. Vor der Einführung von WCF , Web Services entwickelt Net musste innerhalb von Internet Information Server (IIS) gehostet werden. In . Net 3.0 , erhöht die Hosting-Optionen für . Net Web Services erheblich. WCF enthält eine Klasse namens ServiceHost , die Dienstleistungen innerhalb einer Anwendung gehostet leicht ermöglicht. ServiceHost abstrahiert viele der technischen Komplexität weg , so dass Entwickler können sich auf der Service-Logik statt der Sanitär in Hosting-Dienste beteiligt konzentrieren. Hosting einen Service außerhalb der IIS erfordert die WCF-Laufzeit und einem verwalteten . NET-Anwendung , die als Host fungieren. Es ist der Verantwortung des Entwicklers , um den Code, startet und stoppt den Host schreiben. Anleitung
1
Wählen Sie "Neu " und dann " Projekt" im Datei-Menü . Das Dialogfeld Neues Projekt wird angezeigt.
2
Select Visual C # Windows- dann in der Projekt-Template -Liste auf dem Dialogfeld Neues Projekt .
3
Select Console Application aus der Liste der Windows-Projekt -Typen. Geben Sie einen Namen für das Projekt im Feld Name . Der Name des Projekts sollte etwas im Zusammenhang mit selbst präsentiert ein Web-Service , wenn möglich.
4
Tippen Sie einen Ort in der Lage Box auf dem Dialogfeld Neues Projekt . Alternativ klicken Sie auf " Durchsuchen", um zu dem Ort, wo das Projekt gespeichert werden navigieren. Klicken Sie auf " OK". Visual Studio erstellt eine neue Konsole-Anwendung .
5
rechten Maustaste auf SelfHost -Explorer aus. Wählen Sie dann auf Verweis hinzufügen. Finde System.ServiceModel in der Registerkarte. NET und klicken Sie auf " OK". Dies wird einen Verweis auf die Assembly, die erforderlich System.ServiceModel zu entwickeln oder WCF-Dienste hosten wird hinzuzufügen.
6
Doppelklicken Sie auf die Datei, die Klasse hinzugefügt, wenn das Projekt erstellt wurde. In den meisten Fällen wird es benannt Program.cs werden. Der Code für die Klasse wird angezeigt.
7
auf den Namen des Projekts mit der rechten Maustaste und wählen Sie "Neue Klasse ". Benennen Sie die Klasse " HelloWorld " und geben Sie den folgenden Code:
mit System.ServiceModel ;
mit System.ServiceModel.Description ;
[ ServiceContract ]
< p > public interface IHelloWorld
{
[ OperationContract ]
String SayHello (string name); }
public class HelloWorld : IHelloWorld
{
public string SayHello (string name ) {
Rückkehr string.Format ("Hallo , {0}" , name);
} }
Dieser Code ist die Implementierung einer Probe " HelloWorld " Web-Service, eine Operation , hat " SayHello . "
8 < p> an der Klasse, die automatisch aufgenommen , wenn das Projekt erstellt wurde doppelklicken. In den meisten Fällen wird die Klasse mit dem Namen Program.cs werden
9
Geben Sie den folgenden Code am Anfang der Klasse :
mit System.ServiceModel ;
< p . > mit System.ServiceModel.Description ;
10
Geben Sie folgenden Code in die Main-Methode der Klasse :
//definiert die Basisadresse für den Dienst auf dem lokalen Computer
Uri baseAddress = new Uri ( " http://localhost:8080/hello ");
//erstellen des Service Host
mit ( ServiceHost host = neue ServiceHost . (typeof ( HelloWorld ) , baseAddress ) ) {
//Aktivieren Metadatenveröffentlichung
ServiceMetadataBehavior smb = new ServiceMetadataBehavior (); .
smb. HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15 ;
host.Description.Behaviors.Add ( smb );
//Öffnen Sie die ServiceHost zu starten hören für Nachrichten
host.Open (); .
Console.WriteLine (" Der Service läuft und kann Anfrage erhalten {0}" , baseAddress );
Console . WriteLine ( " Drücken Sie die Eingabetaste , um den Dienst zu beenden. ");
Console.ReadLine ();
//Schließen Sie die ServiceHost
host.Close . (); }
Dieser Code startet den Dienst Host und erstellt eine Instanz des Dienstes. Der Dienst kann von einem Client aufgerufen werden, bis die Konsole -Anwendung geschlossen wird .