使用内联代码的 IIS 承载

此示例演示如何实现由 Internet 信息服务 (IIS) 承载的服务,该服务的服务代码以内联方式包含在一个 .svc 文件中,并且可以按需编译。服务代码还可以直接在源代码文件(位于应用程序的 \App_Code 目录中)中实现,也可以编译为 \bin 中所部署的程序集。此示例不演示这些技术。

提示

本主题的末尾介绍了此示例的设置过程和生成说明。

本示例演示一个典型的服务,该服务实现定义“请求-答复”通信模式的协定。该服务由 IIS 承载,服务代码完全包含在 Service.svc 文件中。该服务由主机激活,并由发送给它的第一条消息按需编译。没有必要进行预先编译。该服务实现一个 ICalculator 协定,下面的代码对该协定进行了定义:

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

服务实现计算并返回相应的结果。

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

运行示例时,操作请求和响应将显示在客户端控制台窗口中。在客户端窗口中按 Enter 可以关闭客户端。

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.

设置、生成和运行示例

  1. 请确保已经执行了 Windows Communication Foundation 示例的一次性安装过程

  2. 若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照生成 Windows Communication Foundation 示例中的说明进行操作。

  3. 若要用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.