随笔分类 - WCF
摘要:1 部署IIS1.1 安装WASIIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(Windows Process Activation Service),即windows进程激活服务。打开控制面板--程序和功能--打开或关闭windows功能,安装WAS,如图:安装完毕后在Services窗口中可以到到如下服务:Windows Process Activation Service;Net.Msmq Listener Adapter;Net.Pipe Listener Adapter;Net.Tcp Listener Adapter;Net.Tcp Por
阅读全文
摘要:由于信道管理器在客户端和服务端所起的不同作用,分为信道监听器和信道工厂。和服务端的信道监听其相比,处于客户端的信道工厂显得简单。从名称就可以看得出来,信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的一些接口和基类的定义。一、信道工厂相关的接口和基类对于信道监听器,WCF定义了两个接口:IChannelListener和IChnnelListener。与之相对地,WCF也为信道工厂定义了两个接口:IChannelFactory和IChannelFactory。这两个接口定义了信道工厂最基本的功能和属性,下面是这两个接口的定义:1: public interface I
阅读全文
摘要:项目有用到wcf 大体是jquery + webservice + wcf(网页是客户端,wcf是服务端),现在需要服务端往客户端推送信息,本来是用客户端ajax访问 2秒一次访问服务端,后来觉得这办法不是长久之计,所以百度了下,决定使用comet。什么是comet?点击这里!大概就是:客户端发送个ajax请求,服务端接收到这个请求后保存这个请求,直到服务端有信息要返回给客户端或超时(超时时间自己设置,我在例子里设置30秒,不要太久,因为wcf配置也有连接的时间限制),收到信息或超时时限到了时候再重新发起一个ajax请求。wcf的服务契约:IService: 1 [ServiceContrac
阅读全文
摘要:背景客户端与服务端使用WCF建立连接后:1、可能长时间不对话(调用服务操作);2、客户端的网络不稳定。为服务端与客户端两边都写“心跳检测”代码?不愿意。解决设置inactivityTimeout属性:设置KeepAlive值,以保持数据层连接设置ReceiveTimeout 属性:服务端允许客户端登录后不做任何应用层服务的调用也可以一直挂着而不回收连接ReceiveTimeout = TimeSpan.MaxValue参考做socket保持长连接的一些心得及回复意见 How to set keep alive interval for HTTP connection in WCF
阅读全文
摘要:最近项目中接触了一点WCF的知识,也就是怎么调用WCF服务,上网查了一些资料,很快就搞出来,可是不符合头的要求,主要有以下几个方面: ①WCF的地址会变动,地址虽变,但是里面的逻辑不变! ②不要引用WCF服务的接口DLL文件,这样会导致一定的耦合性(虽然接口一旦指定就不会改动了)! 1.手动配置服务(这种方式比较傻瓜) 这种方式比较容易,也不多说了,直接给个地址就好了:学习 WCF (6)--学习调用WCF服务的各种方法 2.引用接口DLL,通过地址动态调用WCF服务 1 private void ReleasePC(string clientName, st...
阅读全文
摘要:接触PHP第二天,要求PHP访问WCF服务着实痛苦,无从下手啊.在网上查了很多资料知道PHP访问WCF很方便如上即可访问但是报错,无法找到SoapClient 这个类,在网上找答案,说是要去掉php.ini中;extension=php_soap.dll的分号去掉,然后重启即可由于不熟悉,兄弟一直在apach中的php.ini-dist中改了又改,一直无效.看了很多网站,都是说没有去掉那个分号可是我就纳闷了,我去了咋就不行呢蛋痛了一下午,最后甚至怀疑是不是人品出了问题临近下班,无意间又打开了localhost这个熟悉的界面php.iniF:\PHP\php-5.2.14-Win32\php-a
阅读全文
摘要:中午测试员在测试系统模块时发现无法通过WCF从服务器下载数据,检查配置文件后,建议开发人员修改站点的WEB.CONFIG文件,具体修改对比如下:旧的:新的:注意这里修改的主要是maxReceivedMessageSize这个属性,解决了从服务器通过WCF下载大容量数据的问题。下午测试人员继续测试,发现无法将数据通过WCF保存回服务器端。检查数据后发现,需要被保存的数据超过9K,而WCF服务器端使用的是binding="basicHttpBinding"这个数据绑定方式。思路打开,则应该是由于服务器端的接收的数据大小有限制。当初次引用服务后,显示的服务器端binding=&q
阅读全文