使用内联代码的 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.
设置、生成和运行示例
若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照 Building the Windows Communication Foundation Samples中的说明进行操作。
生成解决方案后,运行 setup.bat 以在 IIS 7.0 中设置 ServiceModelSamples 应用程序。 现在,ServiceModelSamples 目录应显示为 IIS 7.0 应用程序。
要使用单机配置或跨计算机配置运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。 有关如何创建可调用此服务的客户端应用程序的示例,请参阅如何:创建客户端。