本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容...- WSDL 文档包含无法解析的链接。 - 下载“http://admin-pc/IISHostService/Service1.svc?xsd=xsd0”时出错。...web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。...问题描述是这样的。 1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。 ?...2、WCF客户端通过web服务引用时候,http://10.198.1.21:8089/Service1.svc 一直无法正常的添加引用。 ?
因此,他们决定以面向服务的方式来创建此应用程序,并通过定义完善的一组服务,将此应用程序的逻辑公开给其他软件。为了实现这些服务并使之与其他软件进行通信,这一新应用程序将使用 WCF。 ?...在WcfService_Client的引用文件夹右键,如下图所示,点击“添加服务引用”。 ? 第3步 如果自己项目中WCF服务不是非常多,可以点击“发现”,如果知道WCF项目的发布地址也是可以的。...://localhost:54875/Service1.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1...//localhost:54875/Service1.svc?...如果对方也是WCF写的服务端的话,可以进入如下图所示界面,然后点击以”?wsdl”结尾的链接。 ? 可以看到是一个xml文件,里面有一个 ?
昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容,但无法进行处理。 - WSDL 文档包含无法解析的链接。 ...- 下载“http://admin-pc/IISHostService/Service1.svc?xsd=xsd0”时出错。 - 基础连接已经关闭: 接收时发生错误。 ...元数据包含无法解析的引用:“http://admin-pc/IISHostService/Service1.svc?wsdl”。...如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。 该错误是在使用svcutil生成client代码时报的错误,服务是部署在IIS7上,部署的过程都是完全教科书式的进行。...wsdl 按照提示直接用svcutil.exe http://admin-pc/IISHostService/Service1.svc?wsdl命令去生成代码,就出现了开头说的那个错误。
一、 从SOAP Fault说起(基于SOAP 1.2) 服务调用的最终实现通过消息交换完成,WCF本质上可以看成是一个消息处理的框架。...在《WCF技术剖析(卷1)》的第5章,我曾经按照SOAP 1.2规范对SOAP作了全面的介绍,这其中就包括对SOAP Fault。...为了使SOAP Fault消息的接收者能够判断导致错误的SOAP结点类型,在生成Fault消息的时候,可以通过Node元素指定结点的类型。...5、Fault Detail元素 在很多基于SOAP通信的应用中,SOAP Fault消息的接收者处理需要了解通过上面介绍的基本错误元素表示的错误信息之外,往往还需要一些对错误信息更加详尽的描述。...当WCF的服务端框架在进行错误提供过程中,将整个FaultException进行序列化并据此生成一个Fault消息,其Detail属性表示的错误明细对象被序列化后的XML作为SOAP
摘要 在项目开发中,我们可能会适时的选择http或者tcp绑定的wcf服务,可以使用控制台来托管服务,也可以使用IIS来承载服务,由于IIS本身对于请求和异常的处理能力,使得我们可以省去很多开发精力而成为托管服务的首选...,之前我做的WCF服务时托管在控制台的,今天摸索了一下采用tcp绑定的wcf托管到IIS7的过程,分享一下,希望能帮助到想移植服务到IIS的朋友。...实例 依然是以一个服务作为例子展开,我们新建一个WCF Application,默认有一个简单的服务Service1.svc, 代码 [ServiceContract] public interface...在vs2010中再浏览一下服务http://localhost/WCFService/Service1.svc,发现已经OK了 ? 于是,我们可以正常引用并使用这个服务了 ?...引用服务完成后,调用的效果是: ? 源代码:http://files.cnblogs.com/wengyuli/WCFTcpHostToIIS.rar
无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message。...在我们对Web Service和WCF进行深入学习的时候,借助一些Soap Trace 工具对Soap Message进行深入剖析是非常有必要的。...按照面向服务的原则,服务具有高度的自治性(Automation),Soap Message一旦被Service发送出去,就不能再被该Service所控制,所以Soap来说,它需要具有高度的自描述性(Self-Describing...),它自身必须包含所有必须的控制信息来指导任何接收到该Soap的节点如何去处理它。...Endpoint的Address,另一个则是实际接收该Soap的Intermediary Node的Address。
RESTful Wcf是一种基于Http协议的服务架构风格, RESTful 的服务通常是架构层面上的考虑。...(2) Service1.svc 实现IService1.cs定义的服务契约。...Required 至此我们的WCFRESFul搭建成功,运行服务看效果。 1、 http://localhost:9315/Service1.svc(传统的页面,是不是很熟悉) ?...VS自带的IIS调试,WCF RESTFul生成的URL与调用WCF服务的URL端口号要保持一致,要不然用ajax调用浏览器会认为跨域。...服务地址配置为:http://localhost/wfcrestful/user/help 调用服务的Web页面的地址为:http://localhost/restfulTest/WebForm1.aspx
它为客户端应用程序中由 WCF 服务协定使用的且可由 XmlSerializer 序列化的类型预生成 C# 序列化代码。 当序列化或反序列化这些类型的对象时,这会提高 XML 序列化的启动性能。...入门 在 .NET Core 控制台应用程序中使用 dotnet-svcutil.xmlserializer: 在 .NET Framework 中使用默认模板“WCF 服务应用程序”创建一个名为“MyWCFService...”的 WCF 服务。...://localhost:2561/Service1.svc"); //Fill your service url here var myChannelFactory = new...例如,通过在浏览器中运行 http://localhost:2561/Service1.svc 来启动 WCF 服务。 然后启动客户端应用程序,它将在运行时自动加载和使用预生成的序列化程序。
--缺点:如果执行操作需要很长的时间,则会降低客户端性能和响应力 --优点:响应消息中可返回SOAP错误,这表名可能在通信或处理中发生了一些与服务有关的错误状况 单向模式 如果WCF服务应用程序的客户端不必等待操作完成...,并且不处理SOAP错误,则该操作可以指定单向消息模式。 ...单向操作是可俄护短调用操作并在WCF将消息写入网络后继续进行处理的操作,通常这意味着,除非在出战消息中发送的数据极其庞大,否则客户端几乎立即继续运行(除非发送数据时出错)。...在服务端,则可以通过OperationContex获取在客户端设置的SOAP报头和HTTP报头。关于OperationContext的详细信息,可以参阅MSDN在线文档。...配置预定义绑定类型 在WCF预定义绑定类型中,WSDualHttpBinding和NetTcpBinding均提供了对双工通信的支持,但是两者在对双工通信的实现机制上却有本质的区别。
WCF框架自动为我们作了这么多“幕后”工作,使得开发人员可以完全采用编写一般的.NET应用程序的模式进行异常的处理:在错误的地方抛出相应异常,对于潜在出错的方法调用进行相应的异常捕获和处理。...如果指定了错误明细对象,需要指定与之匹配的序列化器以实现对其的序列化和反序列化。...三个方法定义如下,其中faultDetailTypes代表错误明细类型列表,这是为对FaultException对象的反序列化服务的。...具体来说,客户端通过ClientMessageFormatter将服务操作方法调用转换成请求消息(其中主要涉及对参数对象的序列化),以及将接收到的回复消息转换成服务操作方法对应的返回值或者输出/引用参数...在服务端对异常对象进行序列化并生成回复消息(Fault消息),在客户端对接收到的回复消息进行反序列化重建并抛出异常。
但是由于各个Service是自治的,如果一个Service调用另一个Service,在服务提供方抛出的Exception必须被封装在Soap Message中,方能被处于另一方的服务的使用者获得、从而进行合理的处理...、错误的表示。...Operation和出错信息的ErrorMessage。...它就被识别它,就会将从接收到的Soap中对该Fault的XML Mapping到具体的MathError类型。...type实际上是被定义在一个XSD中,其Uri为http://localhost:8888/Calculator?
但对很多应用这样的作法显得比较多余,比如发送一个大的文件,一般是在接收方从协议栈收到多少数据就写多少数据到磁盘,这是一种边接收边处理的流模式,这种模式基本上和每次收到的数据量没有关系。...protobuf的dotNet实现protobuf-net, 支持WCF的DataContact,WCF程序几乎不需要什么修改就能使用。...一个最小的可以工作的例子就是protobuf-net提供的(client, server),它使用的是共享契约的方式,通过WCF的配置方式,添加一个Endpoint-behavior,引用一个自定义的WCF...behavior,例如下面的例子 客户端: <endpoint address="<em>http</em>://<em>localhost</em>:33545/<em>Service1.svc</em>" binding.../03/29/protocol-buffers-and-wcf.aspx http://www.drdobbs.com/windows/working-with-protobuf-wcf-services
有图有真相,如果你也是菜鸟那就也来看看我这个菜鸟一步一步的实现吧。 我们都知道WCF在运行的时候必须自己提供宿主来承载服务。WCF 本身没有附带宿主,就需要我们自己来依附于宿主而承载WCF服务。...7) 和Windows Server 上的IIS 7.0 --IIS 7.0 -- 用Windows 进程激活服务(WAS)来允许通过HTTP之外的协议进行激活或网络通信。...此环境适合开发可通过WCF支持的任何网络协议(HTTP 、net.tcp、net.pipe和net.msmq)进行通信的WCF服务 --IIS承载的好处 -可像处理任何其他任何类型的IIS应用程序...-IIS中承载的WCF服务与ASP.NET2.0使用相同的动态编译模型,该模型简化了承载的服务的开发和部署。 ...-当决定在IIS中承载WCF服务时,一定要记住IIS5.1和IIS6.0仅限于HTTP通信。 --部署IIS承载的WCF服务 -1.要确保正确安装IIS和WCF以及WCF激活组建。 ?
消息交换是WCF进行通信的唯一手段,通过方法调用(Method Call)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端;服务操作执行的结果也只能以消息的形式才能被正常地返回到客户端...所以对于一般的编程人员来说,他们面对的是接口,却不知道服务契约对于服务的描述;面对的是数据类型,却不知道数据契约对序列化的作用;面对的是方法调用和返回值的获取,却不了解底层消息交换的过程。...SOAP Reason描述出错的基本原因,通过字符串的形式表示。SOAP Code具体通过一个特殊的类System.ServiceModel.FaultCode表示,定义如下。...等等,其中Sender和Reveiver表示发送端和接收端导致的错误。...Fault消息的例子,后面给出的XML是最终生成的SOAP消息。
在IIS7.5下配置WCF的TCP绑定经常会遇到如下问题 找不到具有绑定 NetTcpBinding 的终结点的与方案 net.tcp 匹配的基址。注册的基址方案是 [http]。...--描述服务--> 二:确定安装了WCF
WCF在跨域传输使用了两种模型的方法调用:一种是同步模型,这种模型显然对那些需要大量操作时间的方法调用(如从数据库中获取大量数据时)是一种痛苦的选择。...address=" http://localhost:5504/WebSite2/ISendStreamService " binding="wsHttpBinding" bindingConfiguration...: <endpoint address="<em>http</em>://<em>localhost</em>:5504/WebSite2/ISendStreamService" binding="wsHttpBinding...也就是说异步方法IAsyncResult Begin*(params parameters,AsyncCallback callback,object state)是在发送第一个<em>SOAP</em>包,并等待<em>服务</em>器<em>接收</em>完第一个包后回应消息包才会返回<em>的</em>...这儿我们只<em>给出</em>了<em>服务</em>器<em>的</em>方法实现: public void AsyncFileUpload(string localFilePath, string netPath) { //获得客户端代理<em>的</em>回调 client
服务的消费者通过获取服务端发布的元数据,并在此基础上重建终结点,才能取保请求:消息被发送到准确的目标地址;采用服务端期望的消息交换模式和并生成服务端能够识别的消息结构;使用相匹配的消息编码方式以确保服务端能够对接收到的消息进行正常解码...此外,在《WCF技术剖析(卷1)》的第2章和第6章对WS-Addressing 1.0和SOAP 1.2进行了概括性的介绍。...格式的形式对Web服务的描述。...如今,WCF完全支持的还是WSDL 1.1版本,所以接下来我们将针对这个版本对WSDL作一个简单的介绍,对于希望了解WSDL1.1的读者可以从后面的地址下载官方文档:http://www.w3.org/...上面给出的WSDL中定义了一个典型的基于SOAP 1.1的绑定(SOAP 1.1和SOAP 1.2绑定的命名空间分别为http://schemas.xmlsoap.org/wsdl/soap/和http
本系列先后通过《实例篇》、《概念篇》、《协议篇》和《编程篇》对WCF的可靠会话进行了详细探讨。作为本系列的最后一片,我们将深入到WCF的可靠会话体系的最底层,对实现可靠会话的实现原理进行深入剖析。...接下来,我们来讨论WCF的可靠会话对WS-RM序列提供机制的实现。 在客户端RS信道开启时,RS信道会先检测当前终结点服务契约中所有服务操作采用的消息交换模式。...在前面给出的服务调用代码中,在进行第二次服务调用之后服务代理就被关闭了。第二次服务调用的回复消息貌似没有被确认的机会了。...服务代理的关闭反映在WCF信道层上就是对信道栈的关闭。当客户端RS信道被关闭时,它负责关闭可靠会话。...在目前所有关于WCF的著作中,没有一本能够站在如此低层次地对可靠消息的实现进行剖析。作为一本深入剖析WCF实现机制的文章,我们还此基础上对其进行进一步的挖掘。
本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。 由于个人技术水平和英文水平也是有限的,因此错误在所难免,希望大家多多留言指正。 Q1....如果我们需要web service但不需要 SOAP,那么ASP.NET WEB API将是最佳选择。 它在现有WCF消息管道之上,构建简单的,基于非SOAP的HTTP服务。...它不像WCF REST service那样需要配置乏味的配置文件。 使用WEB API创建服务十分简单。 基于HTTP并且容易定义,以REST方式公开和使用。...WCF 基于SOAP协议,返回xml数据格式 它是web service(ASMX)的演化版。支持TCP, HTTP, HTTPS, Named Pipes, MSMQ。...当您想创建一个可以使用快速传输通道的服务时,请选择WCF,如TCP,命名管道,或者甚至UDP(在WCF 4.5),并且当所有其他通道不可用时能够支持HTTP传输信道。
WCF为了提供完善的支持,在MessageVersion类里都给出了定义。这些版本可以分别通过使用 WSAddressingAugust2004 和 WSAddressing10 属性进行检索。...我们现在来了解一下WCF如何调用一个特定的服务方法的。这也是WCF路由服务涉及到的重要内容。 我们知道,在客户端,我们可以通过代理类来调用一个服务的方法。...这其实在背后,WCF框架为我们生成了一个SOAP消息。而这个SOAP消息包含我们要调用服务的必要信息。...但是这个消息又是如何在服务端调用到特定的方法的呢? 在WCF中,每个服务端点实际上有两个地址: 逻辑地址:逻辑地址(“To”)是 SOAP 消息的目标地址。...物理地址:物理地址(“Via”)是 WCF侦听消息的实际传输特定网络地址。 WCF通道基础结构针对的是物理地址,因为物理地址负责使用特定的传输协议在特定的位置ListenURI接收传入的消息。
领取专属 10元无门槛券
手把手带您无忧上云