IIS-hosting met inlinecode
Het inlinecode-voorbeeld laat zien hoe u een service implementeert die wordt gehost door Internet Information Services (IIS), waarbij de servicecode inline is opgenomen in een .svc-bestand en wordt gecompileerd op aanvraag. Servicecode kan ook rechtstreeks worden geïmplementeerd in broncodebestanden in de map \App_Code van de toepassing of gecompileerd in assembly die is geïmplementeerd in \bin. In dit voorbeeld worden deze technieken niet gedemonstreert.
Notitie
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
In het voorbeeld ziet u een typische service waarmee een contract wordt geïmplementeerd dat een communicatiepatroon aanvraag-antwoord definieert. De service wordt gehost in IIS en de servicecode is volledig opgenomen in het bestand Service.svc. De service is door de host geactiveerd en gecompileerd op aanvraag door het eerste bericht dat naar de service is verzonden. Er is geen voorcompilatie nodig. De service implementeert een ICalculator
contract zoals gedefinieerd in de volgende 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);
}
De service-implementatie berekent en retourneert het juiste resultaat.
<%@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;
}
}
Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. Druk op Enter in het clientvenster om de client af te sluiten.
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.
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.
Nadat de oplossing is gebouwd, voert u setup.bat uit om de ServiceModelSamples-toepassing in IIS 7.0 in te stellen. De map ServiceModelSamples moet nu worden weergegeven als een IIS 7.0-toepassing.
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. Zie Een clienttoepassing maken die deze service kan aanroepen, voor een voorbeeld van het maken van een clienttoepassing.