Condividi tramite


Self-Host

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

  1. Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.

  2. Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.

  3. Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.

Vedere anche