Zelfhost
Het voorbeeld selfhost laat zien hoe u een zelf-hostende service implementeert in een consoletoepassing. Dit voorbeeld is gebaseerd op aan de slag. De naam van het serviceconfiguratiebestand is gewijzigd van Web.config in App.config en gewijzigd om een basisadres te configureren dat door de host wordt gebruikt. De servicebroncode is gewijzigd om een statische Main
functie te implementeren waarmee een servicehost wordt gemaakt en geopend die het geconfigureerde basisadres levert. De service-implementatie is voor elke bewerking gewijzigd om uitvoer naar de console te schrijven. De client is ongewijzigd, met uitzondering van het configureren van het juiste eindpuntadres van de service.
Notitie
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
In het voorbeeld wordt een statische hoofdfunctie geïmplementeerd om een ServiceHost voor het opgegeven CalculatorService
type te maken, zoals wordt weergegeven in de volgende voorbeeldcode.
// 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();
}
}
Wanneer een service wordt gehost in Internet Information Services (IIS) of Windows Process Activation Service (WAS), wordt het basisadres van de service geleverd door de hostingomgeving. In het zelf-hostende geval moet u zelf het basisadres opgeven. Dit wordt gedaan met behulp van het element, onderliggend add
element van <baseAddresses>, onderliggend van <host>, onderliggend van< de service>, zoals wordt weergegeven in de volgende voorbeeldconfiguratie.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
...
</service>
Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in zowel de service- als clientconsolevensters. Druk in elk consolevenster op Enter om de service en client af te sluiten.
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.
Als u het voorbeeld wilt uitvoeren in een configuratie van één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.