Freigeben über


IIS-Hosting mit Inlinecode

Im InlineCode-Beispiel wird veranschaulicht, wie ein dienst implementiert wird, der von Internetinformationsdienste (Internet Information Services, IIS) gehostet wird, wobei der Dienstcode in einer SVC-Datei enthalten ist und bei Bedarf kompiliert wird. Dienstcode kann auch direkt in Quellcodedateien implementiert werden, die sich im Verzeichnis "\App_Code" der Anwendung befinden oder in der Assembly kompiliert werden, die in \bin bereitgestellt wird. In diesem Beispiel werden diese Techniken nicht veranschaulicht.

Hinweis

Die Einrichtungsschritte und Bauanleitungen für dieses Beispiel finden Sie am Ende dieses Abschnitts.

Das Beispiel veranschaulicht einen typischen Dienst, der einen Vertrag implementiert, der ein Kommunikationsmuster für die Antwortanforderung definiert. Der Dienst wird in IIS gehostet, und der Dienstcode ist vollständig in der Datei "Service.svc" enthalten. Der Dienst wird vom Host aktiviert und erst dann kompiliert, wenn die erste Nachricht an den Dienst gesendet wird. Es ist keine Vorabkompilierung erforderlich. Der Dienst implementiert einen ICalculator Vertrag gemäß der Definition im folgenden Code:

// 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);
}

Die Dienstimplementierung berechnet und gibt das entsprechende Ergebnis zurück.

<%@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;
    }
}

Wenn Sie das Beispiel ausführen, werden die Vorgangsanforderungen und -antworten im Clientkonsolenfenster angezeigt. Drücken Sie im Clientfenster die EINGABETASTE, um den Client zu schließen.

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.

So können Sie das Beispiel einrichten, erstellen und ausführen

  1. Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.

  2. Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.

  3. Führen Sie nach dem Erstellen der Lösung setup.bat aus, um die ServiceModelSamples-Anwendung in IIS 7.0 einzurichten. Das ServiceModelSamples-Verzeichnis sollte nun als IIS 7.0-Anwendung angezeigt werden.

  4. Führen Sie das Beispiel in einer Einzel- oder computerübergreifenden Konfiguration aus, indem Sie die Anweisungen unter Ausführen der Windows Communication Foundation-Beispiele befolgen. Ein Beispiel zum Erstellen einer Clientanwendung, die diesen Dienst aufrufen kann, finden Sie unter How to: Create a Client.

Siehe auch