使用内联代码的 IIS 承载

InlineCode 示例演示如何实现由 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 版本的解决方案,请按照 Building the Windows Communication Foundation Samples中的说明进行操作。

  3. 生成解决方案后,运行 setup.bat 以在 IIS 7.0 中设置 ServiceModelSamples 应用程序。 现在,ServiceModelSamples 目录应显示为 IIS 7.0 应用程序。

  4. 要使用单机配置或跨计算机配置运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。 有关如何创建可调用此服务的客户端应用程序的示例,请参阅如何:创建客户端

另请参阅