SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。...SOAPAction header的内容可以被用在服务端,诸如:防火墙适当的过滤基于HTTP的SOAP请求消息等场景。...跨平台调用Web Service出现:"服务器未能识别 HTTP 标头 SOAPAction 的值"的解决办法: 症状一: Web Service + ASP.NET 应用程序部署到服务器默认目录中,在...IE中用http://服务器地址>//发生“服务器未能识别 HTTP 标头 SOAPAction 的值”错误。...症状二: 在通过WCF 客户端ChannelFactory 上调用.NET Web Service的服务时,出现"服务器未能识别 HTTP 标头 SOAPAction 的值"。
本文主要探讨跨平台调用Web Service出现:"服务器未能识别 HTTP 标头 SOAPAction 的值"的解决办法。...症状一: Web Service + ASP.NET 应用程序部署到服务器默认目录中,在IE中用http://服务器地址>//发生“服务器未能识别 HTTP 标头 SOAPAction...症状二: 在Java平台上调用.NET Web Service的服务时,出现"服务器未能识别 HTTP 标头 SOAPAction 的值"。...SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。...SOAPAction header的内容可以被用在服务端,诸如:防火墙适当的过滤基于HTTP的SOAP请求消息等场景。
的ServiceEndpoint 在 WCF 服务编程中,终结点是其通信的核心对象,服务通过相应的终结点发布出来,客户端通过与服务终结点匹配的终结点对服务进行调用。...比如:用http://和net.tcp://作为前缀的基地址就会与基于http协议绑定的BasicHttpBinding、WSHttpBinding和NetTcpBinding的绑定类型相匹配。...在添加服务终结点 AddServiceEndpoint 时,我们可以采用带有Uri 类型的 ListenUri 参数的重载方法初始化终结点的 ListenUri 属性,也可以构造一个带有 Uri 类型的...在WCF 中提供了4种类型的Behavior,分别是服务Behavior、终结点Behavior、契约Behavior和操作Behavior。...契约Behavior和操作Behavior被定义成了特性对应的应用在类或接口和方法上。 服务Behavior既可以采用声明的方式应用也可以采用配置的方式应用。
对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现。...WCF服务定义成“累积计算服务”:保留上一次运算的结果,并将其作为后续运算的操作数。...众所周知,HTTP是无状态(Stateless)的传输协议,对服务端来说,它收到的每个HTTP请求都是全新的请求。...ASP.NET会话(Session)的实现很简单,就是让每次HTTP请求携带Session的识别信息(Session ID),那么服务就可以根据此信息判断请求来自哪个客户端了。...那么对于ASP.NET兼容模式下的WCF也一样,要想让服务端能够识别会话,就需要让每个服务调用的HTTP请求携带Session的识别信息,我们也可以通过传递Cookie的方式来解决这个问题。
这儿的Headers其实就是SOAP消息中的消息头(类似于Http协议的,也包括消息头和消息体,前者主要提供一些控制信息,后者存放数据部分),它默认通过DataContractSerializer进行序列化和反序列化...WCF提供了4种类型的行为,包括服务行为、契约行为、终结点行为和操作行为,它们一般可以通过特性或者配置文件的方式进行设置。...请求监听和消息分发 这部分内容涉及到整个WCF服务端的架构,下图展示了一个最简单的请求分发过程。 ?...一般来说,企业内部的服务推荐使用RPC类型的服务,如NetTcpBinding,而对外服务推荐使用WSHttpBinding,当然实际项目中,对外服务一般不会使用WCF框架,而是使用Restful风格的.../回复信息的头,其默认通过命名空间、服务契约、操作名称组成,后者默认添加Response;IsOneWay控制消息交换的模式。
服务(例如基于 ASP.NET Web 服务(ASMX)的服务)进行的通信。...此绑定使用HTTP作为传输协议,并使用文本/XML作为默认的消息编码 HTTP/HTTPS Text,MTOM WSHttpBinding wsHttpBinding> 一个安全且可互操作的绑定,适合于非双工服务约定...HTTP/HTTPS Text,MTOM WS2007HttpBinding 一个安全且可互操作的绑定,可为Security,ReliableSession的正确版本和...TransactionFlow绑定元素提供支持 HTTP/HTTPS Text,MTOM WSDualHttpBinding 一个安全且可互操作的绑定,适用于双工服务协定或通过...WCF各系统绑定所支持的功能 绑定名称 传输性安全 消息级安全 WS*兼容性 WS*事务支持 持久可靠消息传送 可靠会话 性能 请求/响应 单向 双工 basicHttpBing √ √ √
得到的初步解决方案如下: 1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 2、增加默认的连接数,系统默认的链接数比较小 3、提供同一个WCF服务的不同实例 1、在Web...增加连接数量 在Http协议中,规定了同个Http请求的并发连接数最大为2. 这个数值,可谓是太小了。...此值设置后,只对以后发起的HTTP请求有效。...服务的不同实例 3、首先查看一个WCF服务类 ?...总结 暂时这三种方式有效地防止了WCF服务的再次挂掉,至少最近几天服务一直在稳定的运行,没有太大的异常,很是让人欣慰。不知道针对WCF服务的处理是否还有其他方式,也让博客园的大牛们来指点一二吧。
Configuration Editor),极大的方便开发者进行服务配置,接下来将演示如何对一个WCF服务程序进行配置: 所有与WCF服务有关的文件类,全都引入System.ServiceModel命名空间...studio 菜单中的工具选项下的WCF服务配置编辑器,点击即可打开。...根据程序的通讯模式选择不同的通讯类型,这里采用HTTP (5)、服务端与客户端的通信模式 i、基本的Web服务互操作性:设置当前程序的通信模式为请求与答复模式,具体请参考WCF系列教程之消息交换模式之请求与答复模式...(Request/Reply) ii、高级Web服务互操作性:分为单工通信和双工通信 ?...这里选择请求与答复模式 (6)、设置服务终结点的地址 ? 当前程序的设置为基地址,所以终结点的地址设置为空。 (7)、向导配置完毕 ?
WCF是.Net框架中的技术,用来创建面向服务的应用程序,交换不同通信方案里的消息,以及执行服务操作生成的工作流。WCF应用程序由三部分组成 - WCF服务,WCF服务主机和WCF服务客户端。...WCF平台有时也被称为服务模型。WCF的基本特征是互操作性。这是微软用于构建面向服务的应用程序的最新技术之一。...根据基于消息的通信的概念中,一个HTTP请求可以被均匀地表示,WCF是一个统一的API而不管不同的传输机制。...上述的多种WS-Policy在WCF中都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。...多线程:WCF支持多线程利用ServiceBehavIor类,而这Web服务不支持。 双工服务操作:WCF支持双工服务业务除了支持单向和请求 - 响应服务操作,而Web服务不支持双工服务操作。
一、WSHttpBinding V.S. WSDualHttpBinding 如果采用WSHttpBinding,最终创建的是一条从客户端到服务端的HTTP通道。...请求的形式发送到服务端,相应的回复或者确认通过HTTP回复返回。...在进行服务调用的时候,即使采用的单向消息交换模式,发送应用消息的请求依然会接收到一个包含SOAP消息的HTTP回复。服务端通过将确认消息方法每一个HTTP回复之中。...之所以采用如上的方式的根本目的在于,WSHttpBinding创建的传输层通道是从客户端到服务端的一条HTTP连接。...如果终结点服务契约中的所有操作中具有一个以上的非单向操作,WCF可靠会话不仅仅需要保障消息从客户端到服务端的可靠性,也需要对服务端到客户端的消息传输提供保障,所以WCF可靠会话需要建立两个方向相反的RM
我们想对WCF具有一定了解的人都会知道:在客户端通过服务调用进行服务调用过程中,服务代理应该及时关闭。但是如果服务的代理不等得到及时的关闭,到底具有怎样的后果?什么要关闭服务代理?...对于WCF客户端来说,如果进行基于会话信道的服务调用,有一些问题需要引起足够的重视,如果使用不当,不但影响客户端本身的服务调用,还会对服务处理请求的吞吐量造成很大的影响。...本例使用我们熟悉的计算服务例子,在服务寄宿的时候采用WsHttpBinding,下面是客户端程序。...基于服务代理对象的会话会随着服务代理的关闭而关闭。服务端在处理客户端请求的时候,如果当前并发的会话数量超过了所允许的范围,后续的请求将会被放入等待队列,以等待现有会话的结束。...为了验证在非会话信道的情况下,WCF最大并发会话限制是否存在,我们对上面的代码稍加修改,在创建WsHttpBinding的时候,将安全模式设为SecurityMode.None(当然,在进行服务寄宿的时候
从功能上讲,服务契约抽象了服务提供的所有操作;而站在消息交换的角度来看,服务契约则定义了基于服务调用的消息交换过程中,请求消息和回复消息的结构,以及采用的消息交换模式。...WCF服务CalculatorService定义在Services项目中,实现了服务契约接口ICalculator,实现了所有的服务操作。...具体的地址为http://127.0.0.1:9999/calculatorservice,采用了WSHttpBinding,并指定了服务契约的类型ICalculator。...图4 通过HTTP-GET的方式获取WCF服务的元数据 在进行真正的WCF应用开发时,一般不会直接通过编码的方式进行终结点的添加和服务行为的定义,而是通过配置的方式进行。...图5 如何获得WCF服务配置编辑器 步骤五:创建客户端调用服务 服务被成功寄宿后,服务端便开始了服务调用请求的监听工作。
对于SOA来说,事务永远是一个重要的主题,我们不仅仅需要单方的事务支持,比如将服务端的操作纳入一个单一的事务之中,也需要事务的流转,将从客户端开始的事务自动流向服务端;不仅仅需要基于单次服务调用的事务,...还需要基于多次服务访问的事务(将多次服务调用纳入同一个事务之中);不仅仅需要基于单一平台的事务支持,还需要跨平台的事务(比如将基于.NET平台的WCF服务调用和基于J2EE平台的Web服务调用纳入同一个事务中...所以从互操作角度讲,WsHttpBinding可以和满足这些标准的Web Service进行互操作。...双工通信需要一个双工的通信通道,但是属性TCP/IP的读者应该很清楚,HTTP协议仅仅是一个单纯的请求/回复通信协议,也就是说基于HTTP的通信通道不可以支持双工通信,那么WsDualHttpBinding...接下来我们要介绍的另外三种绑定,相比之下就不具有如此好的互操作性,它们只能应用于单纯的WCF客户端和服务之间的交互。
步骤: 1.把同样的WCF服务,在多个端口上"启动"(即同时运行多个wcf的实例,但每个实例都监听不同的端口) 2.用svcutil.exe生成的代理类,里面有N多构造函数的重载版本,观察一下类似下面的这个版本...,我们在web.config中的wcf配置节,做如下处理: http://localhost:8001/Astro/" binding...="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAstroService" contract="IAstroService...服务端的实例,配置多个name的endpoint节点 3.修改客户端的调用代码 把原来类似这样的代码: using (AstroServiceClient _client = new AstroServiceClient...服务端的host中挑一个,生成代码类实例 大功告成,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一
WCF的服务端架构体系又可以成为服务寄宿端架构体系。我们知道,对于一个基于某种类型的服务进行寄宿只需要使用到一个唯一的对象,那就是ServiceHost。...由于服务契约本质上是一组相关操作的组合,所以ContractDescription的核心属性是如下所示的表示所有操作描述的Operations属性。...除了操作描述列表之外,自然还有基于服务契约本身的行为列表。...如果读者对于信道层的相关内容不是特别了解,请参考《WCF技术剖析(卷1)》第3章《绑定与信道栈》)。这两个信道监听器分别绑定到上述的两个监听地址进行请求消息的监听。...比如,终结点地址指定的URI为http://www.artech.com/Foo,而请求消息的To报头的URI为http://www.artech.com/Foo/Bar,这样可以被认为是匹配的 MatchAllMessageFilter
现在回过头来看看IDE提供的Wcf Service Library项目模板中的默认服务端配置文件——App.config里面究竟有什么秘密。...在默认的App.config中,使用的是WCF Framework定义好的wsHttpBinding默认配置,所以看不到binding配置节。 ? 配置节展开如下图: ?...wsdl 查看到公开的服务描述。 配置节展开如下图: ? 关于WCF中的地址和绑定,需要补充一下。...WCF中支持的传输协议包括HTTP、TCP、Peer network(对等网)、IPC(基于命名管道的内部进程通信)以及MSMQ(微软消息队列),每个协议对应一个地址类型: HTTP地址:http://...------ 弱弱的分隔线 ----- OK,有了上面的基础,就让WCF风暴来的猛烈些吧。做一个多服务,多端点的示例。 ?
WCF宿主在IIS和普通应用程序里,原理虽然没什么不同,但在实际测试中发现,如果服务端与客户端都采用x.509证书来验证,服务端设置的自定义验证客户端证书的方法总是不起作用,无奈之下,只能在客户端采用了一种变相的方法来验证客户端证书.../颁发服务端证书和客户端证书,对这一块不熟悉的朋友,请参见"[原创图解]Win2003证书服务配置/客户端(服务端)证书申请/IIS站点SSL设置"一文(地址:http://www.cnblogs.com...(本例为http://localhost/),同时正确安装第一步颁发的服务端证书,同时把"要求安全通道(SSL)"选中,这样站点就必须用https://来访问了 这些都弄好以后,就可以测试了,...,WebServer"/>在测试中发现总是不起作用,所以只能转而用下面的方式从客户端来验证特定的证书,理论上讲这样有安全隐患,建议实际操作时,可将本节加密后,再连同客户端证书一起分发给客户端,若用于安全性较高的环境...在互联网环境下,这可能会给客户端的使用带来麻烦,这时可以采用服务端用x.509方式验证,客户端用经典的用户名/密码的方式来验证,详情可参见http://www.cnblogs.com/fineboy/archive
WCF在跨域传输使用了两种模型的方法调用:一种是同步模型,这种模型显然对那些需要大量操作时间的方法调用(如从数据库中获取大量数据时)是一种痛苦的选择。...在WCF中MTOM模型的操作契约中只能使用单个Stream对象作为参数或者返回类型。 ?...这种模型的特点如图所示: 1.1实现服务契约 服务契约是服务所支持的操作、使用的消息交换模式和每一则消息的格式,它控制消息被格式化的方式,在这里由于要使用MTOM编码消息,所以在操作契约中必须要以单一的...="http://localhost:5504/WebSite2/ISendStreamService" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISendStreamService...2.1定义契约和实现相应的同步方法 这里在服务契约中定义了相应的同步方法,用这个调用FileStream类的同步方法Read()和Write()方法对文件进行读写操作,以实现将文件传输到服务的机器上。
领取专属 10元无门槛券
手把手带您无忧上云