`
jiq408694711
  • 浏览: 33034 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论
文章列表
今天测试一个程序,偶然发现WCF服务端抛出的异常会跑到客户端。 是这样的,我写了一个WCF服务,客户端调用这个服务,传递一个序列化为字节流的文件过去,服务端接收到这个字节流之后,将其写入到指定目录保存为文件。 我的服务端的实现代码没有catch异常,当创建文件找不到指定目录的时候,发生“can not find directory”的异常。 结果这个异常在客户端抛出。 然后我在服务端catch这个异常,这样就不会再服务器端捕获到了。 一般来说,WCF服务的服务端要捕获异常,客户端的调用部分也要捕获异常(一般会发生WCF服务代理失效,即套接字断开的异常,以及调用WCF服务代理 ...
我的项目中客户机上有一个后台运行的Windows服务,专门用于接收来自于服务器发过来的异步消息,然后将这个异步消息发送给Winform界面并显示出来。 用户后台服务会在接收到异步消息后,如果显示消息的Winform界面已经退出,则需要根据该界面所在的路径启动界面,将消息的toString()返回值作为启动参数。 运行之后,发现当后台服务接收到异步 消息,界面并没有如愿弹出来,打开任务管理器发现这个界面的进程是被启动了的。说明windows服务启动这个界面进程成功了,但是无法显示出来。 然后我右击服务,选择“允许与桌面应用程序交互”。再试一次,同样还是无法弹出界面。 ======= ...
问题:共享内存在Windows服务和普通进程之间无法工作 我的项目中有一个后台服务,开机自启动,然后会去服务器上获取大数据,缓存在自己的地址空间中。 另外一个进程(Windows Form界面)启动之后会来这个服务这里获取这些数据。 开始为了方便开发调试,我的后台服务并没有做成服务,开发时候就是一个直接的进程,称为进程A。 启动之后从服务器端获取大数据,然后通过共享内存的方式传递给进程B(即那个Windows form界面)。 我采用共享内存方式,因为要说到效率首先就想到共享内存,C#中共享内存的方法封装在MemoryMappedFile类中,CreateNew()创建共享内存 ...
我的项目中有两个NServiceBus终结点,一个运行在服务器端,一个运行在客户端,然后服务器端收到后台业务模块服务的异步消息之后,会发送给客户端的NServiceBus终结点。 开始运行都没问题,时间长了,我发现服务器端NServiceBus终结点发往客户端NServiceBus终结点的消息会丢失,大概丢失率是50%的样子,去客户端的消息队列里面查看也没有,说明不是客户端的NServiceBus没有去取出来,而是压根消息队列就没有收到。 然后我就怀疑是不是我的消息队列太多了,然后我就吧“专有队列”下面的消息队列全部删掉了,结果就能正常收发消息了,没有任何消息丢失。。。 难道消 ...
待解决的问题: 某些应用程序需要异步发送消息到远端机器的NServiceBus终结点,但是又不希望知道接收并处理异步消息的是NServiceBus这种ESB终结点,也许异步消息处理者将来会换成其他的ESB终结点,所以不能采用Send-Only的方式,否则应用程序(消息发送方)还是需要引入NserviceBus.dll等类库。 所以我的思路是: 应用程序调用我的接口发送消息到指定的私有消息队列,然后NServiceBus终结点有一个线程,接收这样一个消息,这个消息没有实现IComman/Imessage接口,所以还要再将这个消息转换为NServiceBus能够处理的消息类型(实现ICom ...
问题之一: 最近一个项目两个NServiceBus终结点,一个运行在客户端,一个运行在服务器端。 客户端的MasterNode设置为服务器端的地址,这样就不需要在客户端安装NServiceBus的软件,而不会报RavenDB连接失败的错误了。 但是启动的时候会报错:“无法创建队列,或者没有对应的权限”。win7下面,管理员权限运行也是一样。暂时的解决方法是手动创建一个事务性的消息队列。 然后我又安装服务器端的终结点,首先安装了NServiceBus的软件(这个软件主要就是安装RavenDB,安装消息队列等。),然后启动服务端的终结点,仍然是同样的错误,由此可知这个错误和是否安装了NS ...
WCF与Web Service不同的是,当我们定义了服务契约的操作时,不管是通过ChannelFactory创建服务代理对象,还是通过SvcUtil的默认方式生成服务代理对象,客户端在调用这些代理对象时,都无法直接实现异步方式的调用。例如,对于如下的服务操作定义: [OperationContract] StreamTransferDocument(Documentdocument); 在调用代理对象的方法时,我们无法找到对应于TransferDocument()操作的BeginTransferDocument()和EndTransferDocument()异步方法。 这样的设 ...
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://oldratlee.com/post/2013-02-01/synchronous-rpc-vs-asynchronous-message 在阿里的平台技术部参与开发了Dubbo(远程调用服务)和Napoli(消息解决方案),又给网站应用支持这2个产品2年,了解了这2个产品的实现及应用对这两个产品的用法。 大部分情况下,“给定场景下应该使用这两个产品中哪个”这个问题,大家都会容易决定,而且不需要多少讨论。 我为什么要拿出来讨论一下: 一些场景会比较模糊,觉得都可以 ...
WCF,Hessian,Dubbo,淘宝的HSF,Mars(链接)这些感觉核心都差不多,初学者有待深入啊。 分布式服务框架: 1 Dubbo http://www.iteye.com/magazines/103 2 HSF HSF实现细节: #service定义方式: 基于OSGI #通信方式:nio,采用mina框架 #序列化和反序列化: Hessian 技术调研选取考量原则: 1 是否开源; 2 功能是否强大,满足需求; 3 版本更新是否比较活跃,文档是否丰富; 目前本人正在着手做RPC框架,基于mina的,以及高性能分布式服务框架,有兴趣的童鞋一起讨论,ji ...
1 创建契约 2 实现契约(真正的服务类) 3 选择寄宿方式 4 编写客户端调用代码 我写了一个控制台寄宿方式的WCF服务调用的例子,在这里下载: 点击打开链接
一 应用无状态(淘宝session框架) 假如在session中保存了大量与客户端的状态信息,保存状态信息的server宕机时   通常通过集群解决,不仅有负载均衡,更重要的是要有失效恢复failover   tomcat用集群节点广播复制,jboss用配对复制等session状态复制策略,但严重影响系统的伸缩性,不能通过增加更多的机器达到良好的水平伸缩   因为集群节点间session通信随着节点的增多而开销增大,因此要想做到应用本身的伸缩性,要保证应用无状态,这样集群中的各个节点来说都是相同的,使系统更好的水平伸缩
项目中需要使用一个定时器,按一定的时间间隔调用WCF服务从服务器端加载一些缓存到客户端。 C#中有三种定时器: (1)Form中的那个; (2)System.Threading中的那个; (3)System.Timers中的那个; 我开始使用的是第二种,然后再定时器执行的回调函数中调用WCF服务,没想到导致我的定时器只能执行一次,此后便不再执行。 然后我换成第三种定时器,在其事件处理函数中调用WCF服务,就可以正确运行了。 至于原因,项目做完再研究吧。 ================================== 慵懒的分割线 ================== ...
Last Updated: Apr 03, 2013 08:46AM IDT 假如你已经写了太多次同样的config代码(译者注:应该是指NServiceBus的那些初始化代码),假如你想要将你的终结点寄宿(host)到windows服务中,那么NServiceBus.Host.exe能够为你做这些事情,并且作为控制 ...
最近C#项目遇到一个问题,我编写了一个开机启动的服务,有两个目的: (1)客户端运行时需要用到一些缓存,但是这些缓存的加载(从服务器端获取)有些耗时,所以就想要开启一个服务在客户端打开之前就开始获取这些缓 ...
Last Updated: Apr 23, 2013 11:41AM IDT 怎么样通过Fiddler来调试RavenDB。 设置一个NServiceBus终结点的所有的对RavenDB的调用都通过fiddler,你需要做的是:为你的终结点配置代理,方法是通过增加下面的配置到app.config中。 <system.net> <defaultProxy> <proxyusesystemdefault="False"bypassonlocal="True"proxyaddress="http:// ...
Global site tag (gtag.js) - Google Analytics