随笔分类 -  初涉WCF

摘要:前言 最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录、页面出现错误等异常,后来发现是由于WCF服务时不时的就死掉了。后来就开始分析问题。得到的初步解决方案如下: 1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 ... 阅读全文
posted @ 2014-05-30 09:40 aehyok 阅读(4404) 评论(18) 推荐(16) 编辑
摘要:原来在项目中使用HttpContext.Current没什么问题,但是到了中期阶段,项目重构等,并且要求使用WCF,所以就出现了HttpContext.Current为null的问题。现在在项目解决的第一种方案是 public class Utils { public static string ExeFullPath; // 当前EXE的全路径名称 public static string ExeDir; // 当前EXE文件所在的目录 public static string ExeFileName; // 当前EXE文件的文件名称 public static ... 阅读全文
posted @ 2013-04-02 13:44 aehyok 阅读(1560) 评论(0) 推荐(0) 编辑
摘要:在部署项目的时候,发现WCF总是存在问题,一直没找出什么原因。 开始在项目开发阶段客户端调用WCF服务的代码如下 JSAJService.JSAJServiceClient _ajService = new JSAJService.JSAJServiceClient(); bool IsCurrent = _ajService.IsCurrentEmpty(ID,User); 或者在本调用文件类中定义一个全局的WCF客户端实例服务。其实这样使用看起来是没什么问题的,而且也能顺利使用,在项目开发阶段完全没出现什么问题。不过,由于wcf客户端都有一个超时时间,可能静止过了一段时间,你在界面... 阅读全文
posted @ 2013-03-29 08:58 aehyok 阅读(724) 评论(0) 推荐(1) 编辑
摘要:前言本次课程的主要内容包括以下四格部分:DataContractSerializer、序列化、反序列化、XmlSerializer第一部分--DataContractSerializerWindows Communication Foundation(WCF)包括新序列化引擎DataContractSerializer。DataContractSerializer可在.NET Framework对象和XML之间进行双向转换。在对.NET Framework 对象进行序列化时,序列化程序了解各种序列化编程模型,包括新的数据协定模型。当对XML进行反序列化时,序列化程序使用XmlReader和Xm 阅读全文
posted @ 2013-03-28 14:21 aehyok 阅读(732) 评论(0) 推荐(1) 编辑
摘要:配置服务概述 在设计和实现服务协定后,即可配置服务。在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址、服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型。 配置服务的类型 --使用配置文件配置 --在代码中强制配置 实际上,编写配置是WCF应用程序编程的主要部分。 使用配置文件配置WCF服务 --通过使用配置文件配置Windows Communication Foundation(WCF)服务,可提供在部署时而设计时提供终结点和服务行为数据的灵活性。 --可使用.NET Framework配置技术对WCF服务进行配置。通常情况下,向... 阅读全文
posted @ 2013-03-27 23:12 aehyok 阅读(972) 评论(7) 推荐(1) 编辑
摘要:前言本次记录的主要内容为以下三点:会话、实例化、并发第一部分--会话会话是在两个终结点之间发送的所有消息的一种相互关系在服务协定上设置System.ServiceModel.ServiceContractAttribute.SessionMode值--Allowed:默认 客户端可以进行连接,并选择建立会话或不建立会话--Required 所有调用(即,支持调用的基础消息交换)都必须是同一个对话的一部分--NotAllowed 禁止会话WCF会话具有下列主要概念性功能:--他们由调用应用程序显式启动和终止。--会话期间传递的消息按照接收消息的顺序进行处理。--会话将一组消息相互关联,从而形成会 阅读全文
posted @ 2013-03-27 11:13 aehyok 阅读(754) 评论(0) 推荐(1) 编辑
摘要:先来了解一下基本WCF术语第一创建WCF服务协定消息 消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头。服务 服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个服务操作。终结点 终结点是用来发送或接收消息(或执行这两种操作)的构造,终结点包括一个定义消息可以发送到的目的地的位置(地址)、一个描述消息应该如何发送的通信机制规范(绑定)以及对于可以在该位置发送或者接收(或两者皆可)的一组消息的定义(服务协定),——该定义还描述了可以发送何种消息。 WCF服务作为一个终结点集合向外界公开。 类或接口都可... 阅读全文
posted @ 2013-03-26 22:16 aehyok 阅读(1129) 评论(1) 推荐(2) 编辑
摘要:有图有真相,如果你也是菜鸟那就也来看看我这个菜鸟一步一步的实现吧。我们都知道WCF在运行的时候必须自己提供宿主来承载服务。WCF 本身没有附带宿主,就需要我们自己来依附于宿主而承载WCF服务。那么现在主要有几种方式来为我们提供WCF的承载呢?1.在IIS中承载2.在Windows 进程激活服务(WAS)中承载3.在托管应用程序中承载(自承载)第一种在IIS中承载 WCF可以方便的通过IIS承载。此承载模型与ASP.NET和ASP.NET Web Service使用的模型类似。 可在以下操作系统上的IIS承载WCF --Windows XP SP2上的IIS 5.1 --Windows ... 阅读全文
posted @ 2013-03-25 08:55 aehyok 阅读(1025) 评论(0) 推荐(1) 编辑
摘要:有图有真相,如果你也是个菜鸟,那就顺便来看看我这个菜鸟一步一步的实现吧。紧跟着菜菜从零学习WCF四(承载服务),我们在此节已经在IIS中发布了此项服务。下面我们先来了解一下,如何来生成客户端吧。1.获取服务协定、绑定和地址 --通常,可以通过使用ServiceModel Metadata Utility Tool(Svcutil.exe)完成此操作 从服务中下载元数据,并使用您选择的语言将其转换到托管源代码文件中 创建一个可用于配置WCF客户端对象的客户端应用程序配置文件 此协定代码编译为客户端应用程序或另一个程序集,然后,客户端应用程序可以使用该程序集创建一个WCF客户端对象。 可... 阅读全文
posted @ 2013-03-24 01:39 aehyok 阅读(819) 评论(0) 推荐(1) 编辑
摘要:前言本次记录主要记录三个重要的内容:Message类概述使用Message类创建消息读取Message类消息第一部分--Message类概述Message类是WCF的基本类。客户端与服务之间的所有通信最终都会产生要进行发送和接收的Message实例,通常不会与Message里直接进行交互。相反,您需要使用WCF服务模型构造(如数据协定、消息协定和操作协定)来描述传入消息和传出协定。在以下情况下可能需要使用Message类: 需要一种替代方式来创建传出的消息内容(例如,从磁盘上的文件直接创建消息),而不是序列化.NET Framework对象。 需要一种替代方式来使用传入的消息内容(... 阅读全文
posted @ 2013-03-24 00:04 aehyok 阅读(594) 评论(0) 推荐(1) 编辑
摘要:本节主要讲述数据协定的一些理论知识,在此记录一下,用于以后的翻查。1.数据协定概述 --默认情况下,Windows Communication Foundation(WCF)使用称为数据协定序列化程序的序列化引擎对数据进行序列化和反序列化(与XML进行相互转换) --所有.NET Framework 基元类型(如整型和字符串型)以及某些被视为基元的类型(如DateTime和XmlElement)无需做其他任何准备工作就可序列化并被视为拥有默认数据协定 --必须为所创建的新复杂类型定义数据协定以便可以进行序列化 --正常情况下可通过将DataContractAttribute属性应用到该... 阅读全文
posted @ 2013-03-21 23:08 aehyok 阅读(784) 评论(0) 推荐(1) 编辑
摘要:消息协定概述 通常,定义消息的架构时使用数据协定就足够了 有时必须精确控制如何将类型映射到通过网络传输的SOAP消息。 对于这种情况,最常见的方案是插入自定义SOP标头。 另一种常见方案是定义消息头和正文的安全属性,也就是说,确定是否对这些元素进行数字签名和加密。消息样式的操作可提供这种控制。 消息样式的操作最多具有一个参数和一个返回值,其中参数和返回值的类型都是消息类型;也就是说,这两种类型可直接序列化为指定的SOP消息结构。 可以是用MessageCOntractAttribute标记的任何类型或Message类型。定义消息协定 若要为某一类型定义... 阅读全文
posted @ 2013-03-21 23:07 aehyok 阅读(863) 评论(0) 推荐(1) 编辑
摘要:菜菜刚开始接触WCF,一切都要从零开始,所以在此也记下笔记,以作日后翻看,大家也可以多多指点。 在了解WCF概述之前,我们也先来了解一下,在WCF版本还未进行发布之前,都是使用的什么技术呢?Asp.Net Web 服务(ASMX) 这种技术用于与基于J2EE的现有预定应用程序,以及与Internet上的合作伙伴应用程序进行通信。因此目前大多数平台都支持基本的Web服务,所以在WCF发布之前,这是实现跨供应商互操作性的最直接的方法。Asp.Net FrameWork远程处理 远程处理专门为紧密耦合的.NET到.NET通信而设计,因此它为本地网络中的应用程序提供了无缝而直接的开发体验。企... 阅读全文
posted @ 2013-03-02 23:55 aehyok 阅读(1213) 评论(0) 推荐(1) 编辑