首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RPC初探

    虽然 Web Service 使用的 XML 作为一门描述性语言,本身的信息密度就很低(都不用与二进制协议比,与今天的 JSON 或 YAML 比一下就知道了)。...如果只是需要客户端、传输性能差也就算了,又不是不能用。既然选择了 XML 来获得自描述能力(名称:值的形式,不像json只描述值),也就代表着没打算把性能放到第一位。...路在何方 而到了最近几年,RPC 框架有明显朝着更高层次(不仅仅负责调用远程服务,还管理远程服务)与插件化方向发展的趋势,不再选择自己去解决表示数据、传递数据和表示方法这三个问题,而是将全部或者一部分问题设计为扩展点...,把工作量减少到只需要指定一个远程服务地址,就可以获取服务描述、绑定各种特性(如安全传输)、自动生成客户端调用代码,甚至还能选择同步还是异步之类细节的程度。...虽然.NET WCF 只支持.NET 平台,而且也是采用 XML 语言描述,但使用体验真的是非常畅快,足够挽回 Web Service 得罪开发者丢掉的全部印象分。

    2K30

    不同的.Net版本客户端软件调用Java Web Service区别

    Java Web Service实现: 先来吐槽一下,其实如果使用Restful Json的方式与客户端交互,我们在线系统本身就支持,客户端也需要去处理soap版本的问题,实现起来更方便。...System.ServiceModel.ClientBase:提供用于创建可以调用服务的Windows通信基础(WCF)客户端对象的基本实现。...主要用于调用WCF创建的各种Binding类型的服务,当然也包括BasicHttpBinding也就是Soap 1.1。 接下来使用此代理类调用web服务。...这个API是返回一组数据列表,客户端调用正常,soap消息监控正常,服务器端执行正常, 可是返回到.net客户端的对象一直是空。而使用Java客户端调用和返回都是正常的。...怀疑是在soap消息反序列化成.net对象时候出了问题。可这个问题一直没找到原因。

    1.5K30

    查询关键字Private,SoapBindingStyle,SoapBodyUse,SoapNameSpace

    = encoded ] { //implementation }其中,soapbodyuse是下列值之一: literal - 这个web方法使用文字数据。...也就是说,SOAP消息的中的XML与WSDL中给出的模式完全匹配。 encoded = 这个web方法使用soap编码的数据。...当使用SOAP向导从WSDL生成web客户端或服务时, IRIS将此关键字设置为适合该WSDL的; 如果修改了该值,web客户端或服务可能不再工作。...当使用SOAP向导从WSDL生成web客户端或服务时, IRIS将此关键字设置为适合该WSDL的; 如果修改了该值,web客户端或服务可能不再工作。...也就是说,查询(或包含它的类)必须用等于rpc的SoapBindingStyle标记。 (如果为使用文档样式绑定的查询指定此关键字,则WSDL将不是自一致的。)

    40210

    “一切都是消息”--MSF(消息服务框架)入门简介

    1,MSF诞生的背景 MSF最初来源于2009年,我们为某银行开发的基金投资分析系统,由于银行安全的原因并且这些投资资料属于机密资料,规定必须使用邮件系统来发送这些资料,但是邮件的收发不是直接针对人,而是两端的计算机程序...服务是消息的生产者,客户是消息的消费者: 这里说明的是服务端,客户端与消息3者的关系,服务端提供服务,客户端使用服务,但是服务端提供什么样的服务,客户端要调用那个服务,都需要消息交换,比如一家餐厅提供餐饮服务...任何一个MSF服务类,都可以作为RPC模式或者服务推送模式使用,两种模式都支持同步或者异步调用,具体使用哪种方式仅仅取决于客户端Proxy。...MSF的时候做一个根本性的判断,比如你要求很高性能的RPC调用,那你不适合使用MSF,因为它基于WCF,高性能不是WCF的设计目标。...不做B/S的消息推送,而是C/S, S/S的通信; MSF推送的不是消息,而是服务; MSF基于WCF,所以不要苛求它RPC的高性能,而应该是通信的成熟、稳定和可靠。

    2.3K50

    WCF技术剖析之二十一: WCF基本的异常处理模式

    由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂。...在这里我们更多地关注与应用异常。 首先,我们在不做任何异常处理相关操作的情况下,看看如果在服务端执行某个服务操作的过程中抛出异常后,客户端会得到怎样的结果。我们通过实例的形式来演示这中场景。...)以便将异常信息发送回客户端,或在打开每个 Microsoft .NET Framework 3.0 SDK 文档的跟踪的同时检查服务器跟踪日志。”...原因很简单,由于我们不能保证服务端直接抛出的异常不包含任何敏感信息,所以直接将服务端原始的异常信息暴露给客户端(对于服务提供者来说,该客户端可能使一个不受信任或者部完全受信任的第三方)。...对于已经发布、付诸使用的服务,这个开关一般是关闭的。实际上,我们从这个服务行为的命名也可以看出,SerivceDebug,也是用于调试服务的服务行为罢了。

    802100

    基于CallContextInitializer的WCF扩展导致的严重问题

    WCF是一个具有极高扩展度的分布式通信框架,无论是在信道层(Channel Layer)还是服务模型层(Service Model),我们都可以自定义相关组件通过相应的扩展注入到WCF运行环境中。...比如在《通过WCF Extension实现Localization》中,我通过ICallContextInitializer确保了服务操作具有和客户端一样的语言文化;在《通过WCF Extension实现...Context信息的传递》中,我通过ICallContextInitializer实现上下文在客户端到服务端的自动传递。...问题大概是这样的,他采用ICallContextInitializer实现WCF与NHibernate的集成。...如果你真的这样做的话,你会发现服务端没有任何消息返回到客户端。 二、原因剖析 从上面表现出来的现象,我们可以知道这是一个非常严重的问题,因为它将会终止整个服务宿主进程。

    649100

    .NET Core ❤ gRPC

    两种实现共享用于调用和处理RPC的相同API,用户能够选择最能满足其需求的实现,而不会限制你必须使用某个平台。...与现有的基于C-Core的实现(Grpc.Core)不同,新库(grpc-dotnet)使用.NET Core基本类库(BCL)中的现有网络实现。...与服务器一样,gRPC客户端也从基于的软件包HttpClient的生态系统中 受益匪浅。...Visual Studio 2019 对protobuf文件的语言语法提供了支持,并在保存protobuf文件时自动生成gRPC服务器/客户端代码,而无需由于设计时构建而需要完全重新编译项目。...: https://github.com/protobuf-net , 我以前在腾讯IT 使用WCF + Protobuf 构建微服务的系统,用的也是protobuf-net 这个库,而不是用WCF自带的二进制序列化

    1.5K10

    分布式系统中的必备良药 —— RPC

    一、前言   在上一篇分布式系统系列中《分布式系统中的必备良药 —— 服务治理》中阐述了服务治理的一些概念,那么与服务治理配套的必然会涉及到RPC框架。...使用的时候需要通过定义proto文件生成客户端和服务端代码,可以跨平台(客户端和服务端生成代码时使用不同的语言)。...框架,使用方式和gRpc类似,需要通过定义.thrift文件生成客户端和服务端代码,可以跨平台(客户端和服务端生成代码时使用不同的语言)。...面向OOP的设计,便于使用,大家可以在文末下载Demo感受一下,手感和WCF比较类似。   ...4.WCF     这应该是.net系下做分布式系统开发中的RPC标配了,随着.net framework3.5在2007年推出,可谓功能丰富,而且支持的协议相比其它框架也是最多(没有之一)。

    73210

    快速入门系列--WCF--02消息、会话与服务寄宿

    经过WCF基础的ABC学习,已经可以构建简单的WCF的服务,使用不同的服务地址和绑定类型,根据业务提供所需的服务契约。但不禁想问,服务所使用的消息报文是什么样的形式么?蕴含什么样内容呢?...WCF服务是否支持会话?WCF所提供的服务是单例的呢还是单调的呢?服务寄宿和客户端代理是如何实现的呢?...接下来,将以这些问题为线索进行深入学习,包容包括XML序列化与SOAP消息、会话与实例、服务寄宿与客户端代理。 ?...现在可以发现,基本上以json格式为基础的restful服务其实都转化为了WebAPI项目,而不是WCF。...通过.svc文件来标识服务,提供ASP.NET并行和兼容两种模式,默认使用第一种,第二种仅在需要共享SessionState时,不常用。

    1.4K50

    方法关键字SoapBindingStyle,SoapBodyUse,SoapMessageName,SoapNameSpace

    当使用SOAP向导从WSDL生成web客户端或服务时,InterSystems IRIS会将此关键字设置为适合该WSDL;如果修改该值,web客户端或服务可能不再工作。...也就是说,SOAP消息的中的XML与WSDL中给出的模式完全匹配。 encoded编码——这个web方法使用SOAP编码的数据。...当使用SOAP向导从WSDL生成web客户端或服务时,InterSystems IRIS会将此关键字设置为适合该WSDL;如果修改该值,web客户端或服务可能不再工作。...s0:MyResponseMessage"/>默认情况下,如果方法没有指定SoapMessageName关键字,AddSoapOut消息将包含一个名为addressponse的元素,而不是...使用SOAP向导从WSDL生成web客户端或服务时,InterSystems IRIS将此关键字设置为适合该WSDL的关键字; 如果修改该值,web客户端或服务可能不再工作。

    49130

    使用ServiceStack构建Web服务

    提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛。...在请求和相应的DTO对象中添加字段,不会破坏旧的客户端。 在WCF中RPC和DTO风格的WebService均支持,但是在ServiceStack中仅支持DTO风格。...可以看到ServiceStack除了在其底层是一个精简的WebService框架之外,在其上还有与之相关的一些组件,比如号称.NET 上最快的JSON序列化工具,.NET中流行的Redis访问模块,轻量级快速...在ServiceStack中,方法和方法之间的区别是通过服务的参数及请求对象Request DTO来区分的,而不是像WCF中通过方法名称来区分。...服务客户端 服务端创建和托管好之后, 服务使用者就可以直接编写HttpWebRequest对象对这些服务通过Get或者Post方式进行直接访问了。

    1.7K50

    Web Service应用之JAX-WS开发

    缺点: 由于soap是基于xml传输,本身使用xml传输会传输一些无关内容从而影响效率,随着soap协议的完善,soap协议增加了许多内容,这样就导致了使用soap去完成简单的数据传输而携带的信息更多效率再受影响...在客户端,用户可以通过JAX-WS的API创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。...生成java客户端代码常使用的命令参数说明: 参数 说明 -p 指定客户端生成类的包路径;值如:cn.abc -s 指定客户端执行类的源文件存放目录 -d 指定客户端执行类的class文件的存放目录 -...对于 RPC 和 DOCUMENT/WRAPPED 绑定,缺省值为 return。对于 DOCUMENT/BARE 绑定,缺省值为方法名 + Response。...header 指定 RPC 或 DOCUMENT/BARE 操作的结果的部件名称。缺省值为@WebResult.name。 7.4.

    2.4K30

    关于RPC协议的通俗理解

    客户端发起请求,服务器返回响应(类似于Http的工作方式) RPC 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。...RPC 风格的 Web Service 跨语言性不佳,而 Document 风格的 Web Service 又太过难用。...虽然号称可以在 .NET 平台以外来调用它的这些服务,但实际上跟在 .NET 平台内调用完全是两码事。它没有提供任何在其他平台的语言中可以使用的任何工具。...仍然需要用代码生成器来将中间语言编写的类型和接口定义翻译成你所使用的编程语言的客户端和服务器端的占位程序(stub)。 你必须要基于生成的服务器代码来单独编写服务,而不能将已有代码直接作为服务发布。...你必须要用生成的客户端代码来调用服务,而没有其它更灵活的方式。 如果你的中间代码做了修改,以上所有步骤你都要至少重复一遍。

    61010

    系统上线后WCF服务最近经常死掉的原因分析总结

    得到的初步解决方案如下:   1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问   2、增加默认的连接数,系统默认的链接数比较小   3、提供同一个WCF服务的不同实例 1、在Web...端调用WCF服务使用后,未释放未关闭导致新的链接无法访问   首先保证客户端每次建立的连接在使用完成后进行关闭。...而目前的浏览器,已基本不再遵循这个限制,但是Dot Net平台上的 System.Net 还是默认遵循了这个标准的。...> net> 3、提供同一个WCF服务的不同实例 3、首先查看一个WCF服务类 ?...wcf服务端的host中挑一个,生成代码类实例,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一。

    1K41

    jax-ws使用教程_JAX-WS教程

    欢迎使用JAX-WS教程。 Web服务在客户端-服务器模型上工作,它们通过网络进行通信。 服务器端组件提供服务所在的端点URL,客户端应用程序可以调用不同的方法。...SOAP是用于设计和开发Web服务的基于XML的行业标准协议。 由于它基于XML,因此与平台和语言无关。 因此,我们的服务器可以基于JAVA,客户端可以基于.NET,PHP等,反之亦然。...松散耦合:Web服务客户端代码与服务器代码完全独立,因此我们在应用程序中实现了松散耦合。 这导致易于维护并且易于扩展。...JAX-WS是基于XML的Java API,用于构建Web服务服务器和客户端应用程序。 它是标准Java API的一部分,因此我们不需要包括其他任何与之兼容的东西。...请注意,JAX-WS API使用了@WebService和@SOAPBinding批注。 我们可以以RPC样式或Document样式创建SOAP Web服务。

    1.7K20

    快速入门系列--WCF--01基础概念

    记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winform时,使用过Remoting,再之后做B/S架构时,就会经常使用.NET平台下的Web Service,直到使用上WCF...,而物理地址对于服务端来说是监听地址,对于客户端来说是消息真正发送的目标地址。...从基础架构的角度上看,WCF可以分为服务模型层和信道层两个层次,服务模型层建立在信道层的基础是上,而信道层就是通过本节即将介绍的binding绑定创建,注意这儿的绑定与.NET很多地方的绑定概念不同(例如最常见的数据绑定...其中BasicHttpBinding最为基础,在构建类似web服务形式的应用中使用最多,所有带Net前缀的绑定将局限于.NET平台,不同的绑定的运行效率有不小差异。...一般来说,企业内部的服务推荐使用RPC类型的服务,如NetTcpBinding,而对外服务推荐使用WSHttpBinding,当然实际项目中,对外服务一般不会使用WCF框架,而是使用Restful风格的

    1.1K100
    领券