Condividi tramite


Hosting IIS con codice inline

L'esempio InlineCode illustra come implementare un servizio ospitato da Internet Information Services (IIS), in cui il codice del servizio è contenuto in riga in un file con estensione svc e viene compilato su richiesta. Il codice del servizio può anche essere implementato direttamente nei file di codice sorgente che si trovano nella directory \App_Code dell'applicazione o compilati in assembly distribuiti in \bin. Questo esempio non illustra queste tecniche.

Annotazioni

La procedura di configurazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

L'esempio illustra un servizio tipico che implementa un contratto che definisce un modello di comunicazione request-reply. Il servizio è ospitato in IIS e il codice del servizio è interamente contenuto nel file Service.svc. Il servizio viene attivato dall'host e compilato su richiesta dal primo messaggio inviato al servizio. Non è necessaria alcuna precompilazione. Il servizio implementa un ICalculator contratto come definito nel codice seguente:

// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
    public interface ICalculator
{
    [OperationContract]
    double Add(double n1, double n2);
    [OperationContract]
    double Subtract(double n1, double n2);
    [OperationContract]
    double Multiply(double n1, double n2);
    [OperationContract]
    double Divide(double n1, double n2);
}

L'implementazione del servizio calcola e restituisce il risultato appropriato.

<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>

// Service class that implements the service contract.
public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2)
    {
        return n1 + n2;
    }
    public double Subtract(double n1, double n2)
    {
        return n1 - n2;
    }
    public double Multiply(double n1, double n2)
    {
        return n1 * n2;
    }
    public double Divide(double n1, double n2)
    {
        return n1 / n2;
    }
}

Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate nella finestra della console client. Premere INVIO nella finestra del client per chiudere il client.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate 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. Dopo aver compilato la soluzione, eseguire setup.bat per configurare l'applicazione ServiceModelSamples in IIS 7.0. La directory ServiceModelSamples dovrebbe ora essere visualizzata come applicazione IIS 7.0.

  4. Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation. Per un esempio su come creare un'applicazione client in grado di chiamare questo servizio, vedere Procedura: Creare un client.

Vedere anche