[WCF]WCF起航
解决方案概览:

Client:windows 控制台应用程序。
WcfService1: windows 服务应用程序。
WCFWebTest:asp.net 空web应用程序。
变量程序命名、结构可能不是那么规范,重点在与说明问题。
- 建立WCF服务项目。
在解决方案上面点右键->添加->新建项目->wcf服务应用程序(图标是齿轮带3个小箭头)。
删掉自动生成的服务和协议。
- 添加服务。
在wcf服务项目上点右键,点添加->新建项->wcf服务。本例中建立了两个服务,User.svc 和Animal.scv。建立服务后,会自动生成对应的协议(接口),IUser、IAnimal.
- 测试方法创建。
在IUser中,定义一个方法接口。ShowName,用来接收一个字符串,返回一个字符串。
[ServiceContract]
public interface IUser
{
[OperationContract]
string ShowName(string name);
}
IUser
在IAnimal中,定义一个方法接口。DoWork,也用来接收一个字符串,返回一个字符串。
[ServiceContract]
public interface IAnimal
{
[OperationContract]
string DoWork(string a);
}
IAnimal
记得在方法前面增加
[OperationContract]
在Animal.scv 和User.svc 中分别实现接口方法。
public class User : IUser
{
#region IUser 成员 public string ShowName(string name)
{
return string.Format("Test:{0}", name);
} #endregion
}
User
public class Animal : IAnimal
{
public string DoWork(string a)
{
return string.Format("Animal Test:{0}", a);
}
}
Animal
- 测试实例调用。
static void Main(string[] args)
{
string a = Console.ReadLine(); //根据建议,也这么实例化一个
SRUserWSDL.UserClient b = new SRUserWSDL.UserClient(); //调用方法
a = b.ShowName(a);
//关闭连接
b.Close();
//将返回的结果展示在屏幕上
Console.WriteLine(a); a = Console.ReadLine(); //实例化一个参数更改的方式
//Service在本地建立的时候,可能是localhost,但是发布的时候,该ip地址可能会发生变化。
//BasicHttpBinding_IAnimal 这个字段来自 客户端(调用端) 的config里面。而不是WCF服务的服务段的config里面
AnimalService.AnimalClient c = new AnimalService.AnimalClient("BasicHttpBinding_IAnimal", "http://192.168.159.142/WcfService1/Animal.svc"); a = c.DoWork(a); c.Close(); Console.WriteLine(a); a = Console.ReadLine(); //另一种连接地址变化的方法
AnimalService.AnimalClient d = new AnimalService.AnimalClient(); d.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://192.168.159.142/WcfService1/Animal.svc"); a = d.DoWork(a);
d.Close(); Console.WriteLine(a); Console.ReadKey();
}
winform端调用
protected void Page_Load(object sender, EventArgs e)
{
AnimalService.AnimalClient c = new AnimalService.AnimalClient("BasicHttpBinding_IAnimal", "http://192.168.159.142/WcfService1/Animal.svc"); Response.Write(c.DoWork("webtest"));
Response.Flush();
}
web端调用
- 调用结果
winform端:

web端:

后续如果还有进一步发现或者问题修改还会继续补充。
[WCF]WCF起航的更多相关文章
- Dynamics AX 2012 R2 Service Middle Tier WCF WCF转发
参考了蒋金楠老师08年的文章.好吧,那时候我才大二.大三,大神果然是大神. http://www.cnblogs.com/artech/archive/2008/09/01/1280939.html ...
- (WCF) WCF and Service Debug
需要做一个多程序间的通讯,采用WCF和WCF Service是目前的选择. 需求:和产品进行通讯,和用户有交互操作,并将最后结果传送个DB 基本思路: 1. 用WPF客户端程序和产品进行通讯,获取必要 ...
- WCF WCF的宿主
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定 ...
- web service, wcf, wcf rest, web api之间的区别
在.NET Framework中,有很多种技术可以创建基于http协议的服务,譬如说web service, wcf,wcf rest和web api等等.网上有很多的文章教我们如何开发.使用这几种技 ...
- (WCF) WCF Service Hosting.
3 Options. 1. Host inside of an application. 2. Host into Windows service. 3. Host into IIS 参考: http ...
- WCF学习系列汇总
最近在学习WCF,打算把一整个系列的文章都”写“出来,包括理论和实践,这里的“写”是翻译,是国外的大牛写好的,我只是搬运工外加翻译.翻译的不好,大家请指正,谢谢了.如果觉得不错的话,也可以给我点赞,这 ...
- c# 动态调用WCF方法笔记!
//动态调用wcf方法 string url = "http://localhost:54379/ServiceWCF.svc"; IDoubleService proxy = W ...
- WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】
http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...
- WCF学习总结
1. WCF简介 WCF (Windows Communication Foundation)是由微软发展的一组数据通信的应用程序开发借口.WCF由服务地址(Address) .协议绑定 (Bindi ...
随机推荐
- mmc一维下料例子
数据来自维基, 长度 = 5600; l切割长度= {1380, 1520, 1560, 1710, 1820, 1880, 1930, 2000, 2050, 2100, 2140, 215 ...
- CocoaPods的安装及设置
1>CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具 在开发iOS应用时,会经常使用第三方类库,手动下载比较麻烦,通过CocoaPods可以便捷的下载与管理第三 ...
- vim插件配置(一)
vim代码自动显示提示代码插件:AutoComplPop: 代码(普通变量函数) c/c++代码(类的 . , ->, :: 操作符)的自动补全插件: OmniCppComplete
- ThinkPHP - 每个操作都检测用户是否登录
TP提供了一个自动执行的函数_initialize(), 你创建一个公共控制器CommonAction.class.php文件. 定义了此方法,不能存在构造方法__construct() <?p ...
- 针对苹果最新审核要求 为应用兼容IPv6
本文授权转载,作者:我不是段誉(简书) 在WWDC2 015上苹果宣布iOS 9将支持纯IPv6的网络服务.2016年初开始所有提交到App Store的应用必须支持IPv6.而今年5月初,苹果宣布6 ...
- 转化为用欧几里得算法判断互质的问题D - Wolf and Rabbit
Description There is a hill with n holes around. The holes are signed from 0 to n-1. A rabbit must h ...
- docker学习笔记13:Dockerfile 指令 WORKDIR介绍
Dockerfile中的WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行. 相当于设置容器的工作目录了.我们来看一个dockerfile文件 #test FROM ub ...
- zabbix 添加主机成功失败判断
zabbix 成功添加后: $VAR1 = bless( { 'version' => 0, 'content' => { 'jsonrpc' => '2.0', 'id' => ...
- 基于visual Studio2013解决C语言竞赛题之0422牛顿迭代法
题目
- java困惑(二)函数以及引用改变
具体的Visio 文档在资源