http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7261|回复: 1

[Asp.Net] WCF学习之二:如何调用使用(图文结合)

[复制链接]
发表于 2013-7-11 16:49:41 | 显示全部楼层 |阅读模式
上一篇是转载的一篇文章,本人地下也好好学习了一番WCF,在Console Application, Windows Forms Application, Web Application以及ASP.NET MVC中都去调用测试,调用方法都相似,没有特殊的地方。下面就从开始来说下WCF作为服务和其他Project的结合使用。(以VS2010为例)

1. 创建WCF Service Application 项目:


创建后会出现 WCF Service Application 项目。
其中:Iservice1是自带示例。下面再来添加一个service class:Service2。
在Service2中加一些测试的方法,例如:string TestMethedStr(int i); int TestMethedInt(int i); double TestMethedDou(int i,int j);所示:
IService2代码如下:
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace MyWcfService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService2" in both code and config file together.
    [ServiceContract]
    public interface IService2
    {
        [OperationContract]
        string TestMethedStr(int i);

        [OperationContract]
        int TestMethedInt(int i);

        [OperationContract]
        double TestMethedDou(int i, int j);
    }
}
[/code]

Service2代码如下:
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace MyWcfService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service2" in code, svc and config file together.
    public class Service2 : IService2
    {
        public string TestMethedStr(int i)
        {
            return "param is:" + i;
        }

        public int TestMethedInt(int i)
        {
            return i;
        }

        public double TestMethedDou(int i, int j)
        {
            return i/j;
        }
    }
}
[/code]
Rebuild 项目,然后public。得到

以下文件,部署到服务器或者本机IIS中,IIS部署这边就不介绍了。如果有什么问题可留言,打开部署所在地,这边以我本地的IIS为例(主要是为了防止外部知道我的IP.....)

上图是Service1的服务,红色框中的地址就是Service1服务的地址。Service2也是同理。

2. 创建Console Application 项目:MyWCFConsole Project.
添加服务引用
在Address中输入,上面红色框中的地址,点击“GO”,
则可获得Service1服务,然后点击OK,引用成功,Service2类似。
在Main函数中,写入测试项
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyWCFConsole.ServiceReference1;
using MyWCFConsole.ServiceReference2;

namespace MyWCFConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Service1Client client = new Service1Client();
            Service2Client client2 = new Service2Client();

            Console.WriteLine(client.GetData(1));

            Console.WriteLine(client2.TestMethedStr(1));
            Console.WriteLine(client2.TestMethedStr(1));
            Console.WriteLine(client2.TestMethedDou(1,2));

            Console.ReadLine();

            client.Close();
        }
    }
}
[/code]
其中client.Close()写了,但是client2.Close()未写,其实服务请求会有一个周期,过了周期就会自动关闭。但最好还是手动去close().
然后点击F5运行,记得要将MyWCFConsole设置为启动项目。

输出结果如上所示。

3. 后话
在别的应用程序访问是相似的但是如果在APP端获取这个就是他们APP端的工作了。一般一个项目较大的话,可以分为多个服务器,以两个为例。可将WCF、数据库等放到一台服务器上,将其他访问着(网站系统等)部署到另一台服务中即可。。。本文就说这么多,后面陆续的会将单工,双工,配置服务,承载服务等等慢慢介绍




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-11-20 10:46:39 | 显示全部楼层
前面两张图片刷不出来!~
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-16 00:54

© 2014-2021

快速回复 返回顶部 返回列表