Silverlight通过TCP协议访问双工模式的WCF(Host在控制台)

简介:

Siverlight与WCF之间的通信按照理论有以下几种方式

协议  宿主 

http  console

http  IIS

tcp    console

tcp    IIS

当然还有windows服务,winform等等,这里仅举出了常见的两种。

这次测试的是silverlight使用TCP访问寄宿在控制台上的wcf服务

代码结构:

  

双工访问的关键点在于

1,比普通的WCF服务多了一个回调契约

namespace WCFLibrary
{
    [ServiceContract(CallbackContract = typeof(IUpdateClient))]   
    public interface IUpdateUser
    
{
        [OperationContract]
        WCFModel.User Update(WCFModel.User User);
    }

    [ServiceContract]
    public interface IUpdateClient
    
{
        [OperationContract(IsOneWay = true)]
        void Say(string fromServerString);
    }
}

2,app.config配置

<service behaviorConfiguration="WCFLibrary.UpdateUserBehaviorname="WCFLibrary.UpdateUser">
        <
host>
          <
baseAddresses>
            <
add baseAddress="net.tcp://localhost:4503/UpdateUser"/>
          </
baseAddresses>
        </
host>
        <
endpoint address="" binding="netTcpBindingcontract="WCFLibrary.IUpdateUserbindingConfiguration="netTcpBindConfig"></endpoint>
        <
endpoint address="mexbinding="mexTcpBindingcontract="IMetadataExchange></endpoint>
      </
service>

3,一定要在本机的IIS根目录放置一个策略文件 

 

4,Host关键代码

class Program
    
{
        static void Main(string[] args)
        {
            MyHost.Open();
            System.Console.WriteLine("服t务?已?经-启?动ˉ...   敲?任?意a键ü停£止1服t务?");
            System.Console.ReadLine();
            MyHost.Close();
        }
    }

    public class MyHost
    
{
        static ServiceHost host = null;
        public static void Open()
        {
            host = new ServiceHost(typeof(WCFLibrary.UpdateUser));
            host.Open();

            host = new ServiceHost(typeof(WCFLibrary.AddService));
            host.Open();
        }
        public static void Close()
        {
            if (host != null && host.State == CommunicationState.Opened)
            {
                host.Close();
            }
            host = null;
        }
    } 



     本文转自wengyuli 51CTO博客,原文链接:http://blog.51cto.com/wengyuli/586759,如需转载请自行联系原作者




相关文章
|
网络协议 安全 Windows
WCF如何绑定netTcpBinding寄宿到控制台应用程序详解
新建一个WCF服务类库项目,在其中添加两个WCF服务:GameService,PlayerService
WCF如何绑定netTcpBinding寄宿到控制台应用程序详解
|
数据格式 Windows JSON
微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务
WCF寄宿方式是一种非常灵活的操作,可以在IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。本文分别对这几种方式进行详细介绍并开发例子进行说明,以求大家对WCF寄宿的方式进行全面的认识和了解。
1010 0
|
10月前
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一
|
9月前
|
C# 数据安全/隐私保护
c#如何创建WCF服务到发布(SqlServer版已经验证)
c#如何创建WCF服务到发布(SqlServer版已经验证)
38 0
|
9月前
|
安全 数据库连接 数据库
WCF服务创建到发布(SqlServer版)
在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构。该架构的项层为服务模型层。 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案。且能与已有系统兼容写作。 简单概括就是:一组数据通信的应用程序开发接口。
64 0
|
10月前
Visual Studio 2022 创建 WCF服务 找不到
Visual Studio 2022 创建 WCF服务 找不到
|
C++
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
105 0
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF使用纯代码的方式进行服务寄宿
服务寄宿的目的是为了开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或者多个终结点,使之暴露给潜在的服务消费,服务消费者通过匹配的终结点对该服务进行调用,除去上面的两种寄宿方式,还可以以纯代码的方式实现服务的寄宿工作。
853 0
|
Windows
WCF服务寄宿到IIS
一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。
1050 0