WCF——1.2 WCF服务、控制台宿主、控制台客户端
2013-11-26 15:10
267 查看
原文:点击打开链接
自己对照做的demo: 点击打开链接
WcfServiceLib - 服务契约的实现; *ConsoleHost工程 – Wcf宿主; *ConsoleClient工程 - Wcf客户端
创建WcfServiceLib工程(选WCF Service Library工程模板: VS为我们自动添加一个IService1.cs和Service1.cs)
Host工程里引用WcfServiceLib工程
将WcfServiceLib里App.config移动到ConsoleHost工程里,删掉Lib工程里的App.config
Host工程的Program.cs添加下面的代码,右击Builder工程
[c-sharp] view
plaincopy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using WcfServiceLib;
namespace WCFStudy2ConsoleHost
{
class Program
{
static void Main(string[] args)
{
using(var host = new ServiceHost(typeof(Service1)))
{
host.Open();
Console.WriteLine("Service start.");
Console.Read();
}
}
}
}
运行 ConsoleHost工程 bin/debug 下面的 exe(这一步是为了生成客户端代理,需要启动Host)
在Client工程里通过添加 Service References,生成客户端Proxy,关闭exe
在Client工程的Program.cs里添加如下代码。
[c-sharp] view
plaincopy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WCFStudy2ConsoleClient
{
class Program
{
static void Main(string[] args)
{
MyWcfSvc.Service1Client client = new MyWcfSvc.Service1Client();
var result = client.GetData(123);
Console.WriteLine(result);
Console.Read();
}
}
}
F5 运行Solution里的Host, 再右击Client工程选Debug的Start new instance方式,运行Client
运行结果:
由于ServiceHost实例是被创建在应用程序域中,必须保证宿主进程在调用服务期间不会被关闭,因此利用Console.Read()来阻塞进程,以使得控制台应用程序能够一直运行,直到人为关闭应用程序。
自己对照做的demo: 点击打开链接
WcfServiceLib - 服务契约的实现; *ConsoleHost工程 – Wcf宿主; *ConsoleClient工程 - Wcf客户端
创建WcfServiceLib工程(选WCF Service Library工程模板: VS为我们自动添加一个IService1.cs和Service1.cs)
Host工程里引用WcfServiceLib工程
将WcfServiceLib里App.config移动到ConsoleHost工程里,删掉Lib工程里的App.config
Host工程的Program.cs添加下面的代码,右击Builder工程
[c-sharp] view
plaincopy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using WcfServiceLib;
namespace WCFStudy2ConsoleHost
{
class Program
{
static void Main(string[] args)
{
using(var host = new ServiceHost(typeof(Service1)))
{
host.Open();
Console.WriteLine("Service start.");
Console.Read();
}
}
}
}
运行 ConsoleHost工程 bin/debug 下面的 exe(这一步是为了生成客户端代理,需要启动Host)
在Client工程里通过添加 Service References,生成客户端Proxy,关闭exe
在Client工程的Program.cs里添加如下代码。
[c-sharp] view
plaincopy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WCFStudy2ConsoleClient
{
class Program
{
static void Main(string[] args)
{
MyWcfSvc.Service1Client client = new MyWcfSvc.Service1Client();
var result = client.GetData(123);
Console.WriteLine(result);
Console.Read();
}
}
}
F5 运行Solution里的Host, 再右击Client工程选Debug的Start new instance方式,运行Client
运行结果:
由于ServiceHost实例是被创建在应用程序域中,必须保证宿主进程在调用服务期间不会被关闭,因此利用Console.Read()来阻塞进程,以使得控制台应用程序能够一直运行,直到人为关闭应用程序。
相关文章推荐
- WCF——1.3 WCF服务、WinForm宿主、WinForm客户端
- WPF宿主、WCF服务、SilverLight客户端搭建完善聊天室
- WCF服务以控制台程序为宿主时的跨域访问问题(附源码) (转载)
- WCF服务以控制台程序为宿主时的跨域访问问题(附源码)
- WCF学习之一:控制台应用作为服务宿主(跨进程)
- WCF学习之一(2):控制台应用作为服务宿主(跨机器/网络)
- WCF服务类库、宿主、web客户端配置
- WCF服务以控制台程序为宿主时的跨域访问问题(附源码)
- 用雇凶杀人的例子来理解WCF中服务、宿主、客户端关系与配置
- [问题]通过IIS宿主发布WCF服务,客户端添加服务引用出错的解决办法
- 客户端动态调用WCF服务中的方法
- 移植Windows自宿主WCF服务到Linux/Mono2.8
- 移植Windows自宿主WCF服务到Linux/Mono2.8
- WCF---客户端引用服务时List<T>变为数组T[]的问题
- Java与WCF交互(一):Java客户端调用WCF服务
- WCF步步为营(四):客户端使用代理类使用服务
- [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码
- WCF 服务 宿主在windows service中的Demo
- Silverlight WCF RIA服务(二十七)Silverlight 客户端 8
- WCF宿主与服务托管