博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[WCF]WCF起航
阅读量:4929 次
发布时间:2019-06-11

本文共 2796 字,大约阅读时间需要 9 分钟。

解决方案概览:

Client:windows 控制台应用程序。
WcfService1: windows 服务应用程序。
WCFWebTest:asp.net 空web应用程序。

 

变量程序命名、结构可能不是那么规范,重点在与说明问题。


 

  1. 建立WCF服务项目。

在解决方案上面点右键->添加->新建项目->wcf服务应用程序(图标是齿轮带3个小箭头)。

删掉自动生成的服务和协议。

  1. 添加服务。

在wcf服务项目上点右键,点添加->新建项->wcf服务。本例中建立了两个服务,User.svc 和Animal.scv。建立服务后,会自动生成对应的协议(接口),IUser、IAnimal.

  1. 测试方法创建。

    在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
  1. 测试实例调用。
1  static void Main(string[] args) 2         { 3             string a = Console.ReadLine(); 4               5             //根据建议,也这么实例化一个 6             SRUserWSDL.UserClient b = new SRUserWSDL.UserClient(); 7  8             //调用方法 9             a = b.ShowName(a);10             //关闭连接 11             b.Close();12             //将返回的结果展示在屏幕上 13             Console.WriteLine(a);14 15             a = Console.ReadLine();16 17             //实例化一个参数更改的方式18             //Service在本地建立的时候,可能是localhost,但是发布的时候,该ip地址可能会发生变化。19             //BasicHttpBinding_IAnimal 这个字段来自 客户端(调用端) 的config里面。而不是WCF服务的服务段的config里面20             AnimalService.AnimalClient c = new AnimalService.AnimalClient("BasicHttpBinding_IAnimal", "http://192.168.159.142/WcfService1/Animal.svc");21 22             a = c.DoWork(a);23 24             c.Close();25 26             Console.WriteLine(a);27 28             a = Console.ReadLine();29 30             //另一种连接地址变化的方法31             AnimalService.AnimalClient d = new AnimalService.AnimalClient();32 33             d.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://192.168.159.142/WcfService1/Animal.svc"); 34 35             a = d.DoWork(a);36             d.Close();37 38             Console.WriteLine(a);39 40             Console.ReadKey();41         }
winform端调用
1  protected void Page_Load(object sender, EventArgs e)2         {3             AnimalService.AnimalClient c = new AnimalService.AnimalClient("BasicHttpBinding_IAnimal", "http://192.168.159.142/WcfService1/Animal.svc");4 5             Response.Write(c.DoWork("webtest"));6             Response.Flush();7         }
web端调用
  1. 调用结果

winform端:

web端:


 

后续如果还有进一步发现或者问题修改还会继续补充。

转载于:https://www.cnblogs.com/Xuhaiyang/p/4250093.html

你可能感兴趣的文章
Python笔记5----集合set
查看>>
连连看小游戏
查看>>
js二级联动
查看>>
谜题32:循环者的诅咒
查看>>
RMI
查看>>
动态切换多数据源的配置
查看>>
win7电脑调整分区后分区不见的文件寻回法子
查看>>
《第一行代码》学习笔记2-Android开发特色
查看>>
bzoj3396 [Usaco2009 Jan]Total flow 水流
查看>>
20165231 2017-2018-2 《Java程序设计》第3周学习总结
查看>>
(180905)如何通过梯度下降法降低损失----Google机器学习速成课程笔记
查看>>
(响应式PC端媒体查询)电脑屏幕分辨率尺寸大全
查看>>
LDAP1-安装部署LDAP服务
查看>>
Crystal Reports拉报表报错:Error detected by database DLL
查看>>
border-radius讲解1
查看>>
CLR via C#学习笔记-第九章-参数和返回类型的设计规范
查看>>
dom4j解析XML文件(3)—XML文件写入
查看>>
vi作者:Bill Joy
查看>>
0139-文件操作之二进制方式打开模式(一).abb
查看>>
自定义分享功能
查看>>