wcf简单的创建和运用
创建一个控制台应用程序,命名为wcftest,并在同一解决方案中添加一个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

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

调用服务
客户端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部署到iis上
打开iis,创建一个应用程序池,取名wcfpool

然后添加一个空网站,程序池选择刚刚建立的wcfpool,用户名为wcfservice,物理地址指向一个空文件夹
因为在本机上,所以主机位localhost,也可以填上本机的ip地址

在随便找个路径创建一个WcfTest的文件夹,在文件夹中放入刚才创建的wcf应用程序的Service1.svc服务程序文件和IService1.cs契约文件还有web.config配置文件
在WcfTest中再创建一个bin文件夹,放入刚才创建的wcf应用程序的bin目录下的WcfService1.dll文件
在iis中的wcfservice网站上创建一个应用,名称为wcftest,物理路径为刚创建的WcfTest文件夹

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

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

说明wcf已经成功部署到iis了,再看一下浏览器的地址栏,是不是跟我们配置的网站的路径一样,主机localhost 应用wcftet下的Service1.svc
如果主机名输入域名,再输入本机ip,则可以通过域名www.xxxx.com的方式访问
在内网的话也可以用本机的内网ip ,地址将会是http://xxx.xxx.xxx.xxx/wcftest/Service1.svc
现在算是把wcf部署到服务器端了,然后就是创建一个客户端访问试一下,同样创建一个控制台程序,然后添加服务引用,地址填上刚才的浏览器地址

能找到wcf,然后再试用一下,依然可以成功调用
总结:初步了解wcf,依然有很多不明白的,比如说wcf的契约,绑定,消息,安全,元数据等
wcf简单的创建和运用的更多相关文章
- WCF入门, 到创建一个简单的WCF应用程序
什么是WCF? WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台. windows想到这里大家都知道了 , WCF也正是由微软公 ...
- WCF简单教程
WCF是DotNet体系中很重要的一项技术,但是组内很多组员通过书籍自学的时候 感觉涉及面太广.配置文件太复杂,新名词太多.抓不到头绪,有感于此,决定进行一次组内技术培训,顺便把培训讲义整理到blog ...
- MVC CodeFirst简单的创建数据库(非常详细的步骤)
最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...
- WCF服务的创建和发布到IIS
一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...
- 使用WCF Data Service 创建OData服务
使用WCF Data Service 创建OData服务 在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主 ...
- .net WCF简单练习
之前一直没接触过WCF这个东西,由于是初学WCF没有深入研究其原理,只是写了一个demo WCF服务用于两个不同项目中的调用,在这里我举例项目A调用WCF服务实现查询数据功能. 第一步:创建数据库,有 ...
- [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 》简单xml创建-json转xml
[.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 在进行WebAPI功能开发的时候,一般传统的验证资料是否合法的方式,都是透过if/else的方式进行判断若是使用Valida ...
- 【转】WCF服务的创建和发布到IIS
一. WCF服务的创建 有两种创建方式: 1.WCF服务库 2.WCF服务应用程序 如下图所示: 这里选择WCF服务库.注意事项: 1.WCF服务库是一个类库项目,这里选择.net 3.5版本(版本高 ...
- WCF简单使用(分别部署在控制台和IIS上)
WCF部署到控制台 1.下面通过一个简单的服务示例来认识WCF1.新建项目,名称IBLL,解决方案名称WcfDemo,模板选择类库2.修改Class1.cs文件名称为 IUserInfoService ...
随机推荐
- SQL Profile 总结(一)
一.前提概述 在介绍SQL Profile之前,不得不说的一个工具就是SQL Tuning Advisor:这个工具是从Oracle 10g開始引入,它的任务就是分析一个指定的SQL语句,并建议怎样使 ...
- 苹果的HomeKit协议
苹果的HomeKit协议非常底层,其作用仅限于让iOS平台和家居设备能够相互“握手”,但“认识”之后,想要继续控制灯.空调等设备,仍然需要家电厂商在HomeKit的基础上进行二次开发.
- Java基础知识强化49:10个实用的但偏执的Java编程技术
1. 将String字符串放在最前面 为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: // Bad ...
- Android WiFiDirect 学习(二)——Service Discovery
Service Discovery 简介 在Android WifiDirect学习(一 )中,简单介绍了如何使用WifiDirect进行搜索——连接——传输. 这样会有一个问题,那就是你会搜索到到附 ...
- [c#]asp.net开发微信公众平台(3)微信消息封装及反射赋值
上一篇已经搭建好整体框架,实现了入口的验证, 验证通过后就交给LookMsgType方法处理,LookMsgType方法主要是对微信发来的不同的消息进行分解,不同的类型交给业务逻辑层不同的方法处理 ...
- ORA-25153: Temporary Tablespace is Empty解决方法
SQL> @/tmp/4.txt create table huang_1 (deptno number,dname varchar2(19),loc varchar2(20)) * ERROR ...
- Ubuntu pip 安装网络爬虫框架 scrapy 出现的错误
1.问题 File "/usr/bin/pip", line 9, in <module> load_entry_point('pip==1.5.4', 'co ...
- AngularJS指令的作用域
参考文章:https://segmentfault.com/a/1190000002773689
- jquery 点点滴滴小记
字符截取显示 var text = $(".content").text(); var textNum = text.length; var textInt = text.slic ...
- Grunt使用心得
1.安装npm 2.安装CLI ( npm install -g grunt-cli) 3.安装grunt (npm install grunt --save-dev) 4.添加gruntfile.j ...