WCF - samodzielny hosting
W tym miejscu usługa WCF jest hostowana w aplikacji konsoli. Poniżej podano proces z odpowiednimi etapami w sposób sekwencyjny, który wyjaśnia cały proces.
Step 1- Najpierw stwórzmy kontrakt serwisowy i jego implementację. Utwórz aplikację konsolową i nadaj jej nazwę MyCalculatorService. Jest to prosta usługa zwracania dodania dwóch liczb.
Step 2- Teraz kliknij prawym przyciskiem myszy odwołania w Eksploratorze rozwiązań i kliknij Dodaj odwołania. Otworzy się następujące okno; Dodaj odwołanie System.ServiceModel do projektu.
Step 3- Utwórz interfejs ISimpleCalculator, dodaj atrybut ServiceContract i OperationContract do klasy i funkcji, jak pokazano poniżej. Dowiesz się więcej o tych kontraktach w późniejszej sesji. Kontrakty te ujawnią światu zewnętrznemu metodę korzystania z tej usługi.
Step 4 - Kod tego pliku jest następujący -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace MyCalculatorWCFService {
[ServiceContract()]
Public interface ISimpleCalculator {
[OperationContract()]
int Add(int num1, int num2);
}
}
Step 5 - MyCalculatorService to klasa implementacji interfejsu IMyCalculatorService, jak pokazano poniżej.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyCalculatorWCFService {
Class SimpleCalculator : ISimpleCalculator {
Public int Add(int num1, int num2) {
return num1 + num2;
}
}
}
Step 6- Teraz jesteśmy gotowi do obsługi. Przejdźmy do wdrożenia procesu hostingu. Utwórz nową aplikację konsolową i nadaj jej nazwę „MyCalculatorWCFServiceHost”.
Step 7 - Dodaj odniesienie do system.servicemodel i projektu MyCalculatorWCFService.
Kod za tym jest następujący -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyCalculatorWCFService;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace MyCalculatorWCFServiceHost {
class Program {
static void Main(string[] args) {
//Create a URI to serve as the base address
UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator");
//Create ServiceHost
ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl);
//Add a service endpoint
host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), "");
//Enable metadata exchange
ServiceMetadataBehaviorsmb = newServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
//Start the Service
host.Open();
Console.WriteLine("Service is host at " + DateTime.Now.ToString());
Console.WriteLine("Host is running... Press key to stop");
Console.ReadLine();
}
}
}