wcf简单的创建和运用

时间:2023-12-23 12:38:26

创建一个控制台应用程序,命名为wcftest,并在同一解决方案中添加一个wcf服务应用程序

wcf简单的创建和运用

在wcf项目中会自动生成Service1.svc服务程序文件和IService1.cs契约接口

IService1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text; namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
// TODO: 在此添加您的服务操作
} }

服务类必须要添加[ServiceContract]特性,方法要添加[OperationContract]特性,这样才能被客户端调用,wcf服务需要这几个特性来制定服务契约,规定wcf消息交换模式和消息的格式等

Service1.svc

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text; namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
}

测试用,所以我只保留了GetData方法

现在服务和项目在同一解决方案中,可以直接引用服务,添加服务引用,点击发现,就能看到创建的wcf

wcf简单的创建和运用

添加服务(服务修改后要重新生成一下,不然可能会报错)

wcf简单的创建和运用

调用服务

客户端wcftest中的程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace wcftest
{
class Program
{
static void Main(string[] args)
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
Console.WriteLine(client.GetData());
Console.ReadKey();
}
}
}

程序输出结果

wcf简单的创建和运用

结果出来了,证明wcf是可以用的,现在把wcf部署到iis上

打开iis,创建一个应用程序池,取名wcfpool

wcf简单的创建和运用

然后添加一个空网站,程序池选择刚刚建立的wcfpool,用户名为wcfservice,物理地址指向一个空文件夹

因为在本机上,所以主机位localhost,也可以填上本机的ip地址

wcf简单的创建和运用

在随便找个路径创建一个WcfTest的文件夹,在文件夹中放入刚才创建的wcf应用程序的Service1.svc服务程序文件和IService1.cs契约文件还有web.config配置文件

在WcfTest中再创建一个bin文件夹,放入刚才创建的wcf应用程序的bin目录下的WcfService1.dll文件

在iis中的wcfservice网站上创建一个应用,名称为wcftest,物理路径为刚创建的WcfTest文件夹

wcf简单的创建和运用

然后可以在iis中看到生成了相应的应用程序,右键浏览Service1.svc

wcf简单的创建和运用

如果在浏览器中出现如下结果

wcf简单的创建和运用

说明wcf已经成功部署到iis了,再看一下浏览器的地址栏,是不是跟我们配置的网站的路径一样,主机localhost 应用wcftet下的Service1.svc

如果主机名输入域名,再输入本机ip,则可以通过域名www.xxxx.com的方式访问

在内网的话也可以用本机的内网ip ,地址将会是http://xxx.xxx.xxx.xxx/wcftest/Service1.svc

现在算是把wcf部署到服务器端了,然后就是创建一个客户端访问试一下,同样创建一个控制台程序,然后添加服务引用,地址填上刚才的浏览器地址

wcf简单的创建和运用

能找到wcf,然后再试用一下,依然可以成功调用

总结:初步了解wcf,依然有很多不明白的,比如说wcf的契约,绑定,消息,安全,元数据等