Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'esempio SelfHost illustra come implementare un servizio self-hosted in un'applicazione console. Questo esempio si basa sull'introduzione. Il file di configurazione del servizio è stato rinominato da Web.config a App.config e modificato per configurare un indirizzo di base usato dall'host. Il codice sorgente del servizio è stato modificato per implementare una funzione statica Main
che crea e apre un host del servizio che fornisce l'indirizzo di base configurato. L'implementazione del servizio è stata modificata per scrivere l'output nella console per ogni operazione. Il client non è stato modificato, ad eccezione della configurazione dell'indirizzo endpoint corretto del servizio.
Annotazioni
La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.
L'esempio implementa una funzione main statica per creare un ServiceHost per il tipo specificato CalculatorService
, come illustrato nel codice di esempio seguente.
// 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();
}
}
Quando un servizio è ospitato in Internet Information Services (IIS) o in Windows Process Activation Service (WAS), l'indirizzo di base del servizio viene fornito dall'ambiente di hosting. Nel caso self-hosted è necessario specificare manualmente l'indirizzo di base. Questa operazione viene eseguita usando l'elemento add
, figlio di <baseAddresses>, figlio di <host>, figlio del <servizio>, come illustrato nella configurazione di esempio seguente.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
...
</service>
Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate sia nelle finestre del servizio che della console client. Premere INVIO in ogni finestra della console per spegnere il servizio e il client.
Per configurare, compilare ed eseguire l'esempio
Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.
Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.
Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.