Host samodzielny
W przykładzie SelfHost pokazano, jak zaimplementować usługę self-hosted w aplikacji konsolowej. Ten przykład jest oparty na rozpoczynaniu pracy. Nazwa pliku konfiguracji usługi została zmieniona z Web.config na App.config i zmodyfikowana w celu skonfigurowania adresu podstawowego, którego używa host. Kod źródłowy usługi został zmodyfikowany w celu zaimplementowania funkcji statycznej Main
, która tworzy i otwiera hosta usługi udostępniającego skonfigurowany adres podstawowy. Implementacja usługi została zmodyfikowana w celu zapisania danych wyjściowych w konsoli dla każdej operacji. Klient został niezmodyfikowany, z wyjątkiem konfigurowania poprawnego adresu punktu końcowego usługi.
Uwaga
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Przykład implementuje statyczną funkcję main, aby utworzyć ServiceHost element dla danego CalculatorService
typu, jak pokazano w poniższym przykładowym kodzie.
// Host the service within this EXE console application.
public static void Main()
{
// Create a ServiceHost for the CalculatorService type.
using (ServiceHost serviceHost =
new ServiceHost(typeof(CalculatorService)))
{
// Open the ServiceHost to create listeners
// and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
}
}
Jeśli usługa jest hostowana w usługach Internet Information Services (IIS) lub usłudze aktywacji procesów systemu Windows (WAS), podstawowy adres usługi jest udostępniany przez środowisko hostingu. W przypadku własnego adresu musisz określić adres podstawowy samodzielnie. Odbywa się to przy użyciu add
elementu podrzędnego <baseAddresses>, podrzędnego hosta>, elementu podrzędnego <<usługi>, jak pokazano w poniższej przykładowej konfiguracji.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
...
</service>
Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknach konsoli usługi i klienta. Naciśnij klawisz ENTER w każdym oknie konsoli, aby zamknąć usługę i klienta.
Aby skonfigurować, skompilować i uruchomić przykład
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Aby uruchomić przykład w konfiguracji pojedynczej lub między komputerami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.