使用内联代码托管 IIS

InlineCode 示例演示如何实现由 Internet Information Services (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 示例 执行One-Time 安装过程。

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

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

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

另请参阅