- 首先打开 VS 2019,选择新建项目,选择 “WCF"下的” WCF 服务库 “,一定要注意这里是”WCF 服务库 ”,不是"WCF 服务应用程序”。与此同时,项目的解决方案也被自动创建。
- 然后在新建的WCF应用中,里面有系统自动帮我们创建好的两个.cs文件,一个是IService1.cs,另一个是Service1.svc.cs。
- 我们需要名字空间System.ServiceModel中的一组库函数。此名字空间在Visual Studio2008默认条件下不被自动加载,需要在这一步添加此名字空间。
具体步骤为:在解决方案资源管理器中"右键"单击项目文件夹下的引用文件夹并选择“添加引用”,在添加引用对话框中选择".Net标签",然后向下滚动直到看到System.ServiceModel。选中它,并点击"确定"。
注:如果使用Visual Studio2019,则这一步骤可以省略。 - 定义服务契约:打开IService1.cs文件"用下面的代码替换模板中给定的代码。
[ServiceContract]
public interface IService1{
[OperationContract]
double C2f(double c); //将摄氏温度转换为华氏温度
[OperationContract]
double F2c(double f); //将华氏温度转换为摄氏温度
}
从代码中可以看到,我们定义了两个简单操作的接口:返回摄氏温度转换为华氏温度的值和返回华氏温度转换为摄氏温度的值。
- 服务契约的实现:我们将会实现上面步骤中定义的接口,打开Service1.svc.cs文件,用下面的代码替换模板中的代码。
public class Service1 : IService1{
public double C2f(double c){
return (32 + 1.8 * c);
}
public double F2c(double f){
return ((f - 32) / 1.8);
}
}
-
调试WCF程序:右键选择"调试",然后"启动新实例",会启动一个微软为我们提供的一个调试工具“WCF测试客户端”。具体界面如下:
-
构建并在浏览器中查看编译后的服务
构建(build)之后,右键单击Service.svc文件并选择“在浏览器中查看”,将生成一个服务网页,如下图所示。注意,ASP .Net服务有一个扩展名.asmx,而WCF服务有一个扩展名.svc。与ASP .Net服务不同,这里不生成测试页。我们必须编写一个客户端应用程序来测试这个服务。点击本地服务链接http://localhost:19592/Service1.svc?wsdl,我们将看到此服务的WSDL文件。虽然WCF服务和ASP .Net服务使用相同的WSDL服务接口标准,但是WCF服务的WSDL文件比ASP .Net服务的WSDL文件包含的信息更多。
至此,我们web服务创建成功。