经过一轮谷百之后,发现网上有很多类似的情况,有的说是因为用了wsHttpBinding协议引起的,或者是元数据没有正确公开,但都不是他们说的情况。后来找到了一篇文章,说的是添加WCF引用的一个陷阱。...web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。...1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。 ?...2、WCF客户端通过web服务引用时候,http://10.198.1.21:8089/Service1.svc 一直无法正常的添加引用。 ?...5、修改Temp目录后,成功添加web服务引用: ?
---Class LIbary项目,演示用的业务逻辑层(仅做分层演示用,无实际意义) 03.WEB ---Web Application,WCF服务将发布在这个项目中(即本例是把WCF宿主在IIS里...,即业务逻辑层,引用Wcf 03.web ---引用BLL,即Web UI层引用BLL 04.Client --独立项目,无引用 步骤: 1.打开vs2008,File-->new project...或Asp.net 3.5 Extenstions Web Application都可以,命名为03_WEB,同样添加对BLL项目的引用 6.在WEB项目中,新建一个WCF目录,然后在该目录下Add-->...可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作: svcutil.exe http://jimmycntvs:90/WCF/CalculateService.svc?...服务,然后把它宿主在IIS中运行,然后用控制台程序来调用这个WCF.
当服务契约成功创建时,我们需要通过实现服务契约来创建具体的WCF服务。...图4 通过HTTP-GET的方式获取WCF服务的元数据 在进行真正的WCF应用开发时,一般不会直接通过编码的方式进行终结点的添加和服务行为的定义,而是通过配置的方式进行。...在这种情况下,可以直接使用VS提供的配置工具。...1、为WCF服务创建.svc文件 我们知道,每一个ASP.NET Web服务都具有一个.asmx文本文件,客户端通过访问.asmx文件实现对相应Web服务的调用。...接下来需要为通过IIS寄宿的CalculatorService创建配置文件,我们只须在Services的根目录下创建一个Web.config,将WCF相应的配置添加到该配置文件中即可。
WCF Web 服务引用工具是 Visual Studio 连接服务的扩展,提供了类似于 .NET Core 和 ASP.NET Core 项目的“添加服务引用”功能的体验 。...系统必备 Visual Studio 2017 版本 15.5 或更高版本 如何使用扩展 备注 “WCF Web 服务引用”选项适用于使用以下项目模板创建的项目 : Visual C# > .NET...此操作将显示“配置 WCF Web 服务引用”向导 : 选择服务。 3a....“配置 WCF Web 服务引用”向导中提供了多个服务搜索选项 : 要搜索当前解决方案中定义的服务,请单击“发现”按钮 。...加载过程中,“完成”按钮被禁用,除非未选中“重新使用引用程序集中的类型”复选框 。 完成后,单击“完成” 。 在显示进度的同时,工具: 从 WCF 服务下载元数据。
服务端 配置服务端 编辑 frps.toml 文件 bindAddr = "0.0.0.0" bindPort = 7000 vhostHTTPPort = 8080 启动服务端 ..../frps -c frps.toml 客户端 配置客户端 serverAddr = "xx.xx.xx.xx" serverPort = 7000 [[proxies]] name = "web" type...启动客户端 首先在本地启动一个web服务,这里使用python的http.server。 python3 -m http.server 8080 然后启动frp客户端 ..../frpc -c frpc.toml 验证 通过浏览器访问 http://xx.xx.xx.xx:8080/
前面一篇文章《WCF 学习总结1 -- 简单实例》一股脑儿展示了几种WCF部署方式,其中配置文件(App.config/Web.config)都是IDE自动生成,省去了我们不少功夫。...在默认的App.config中,使用的是WCF Framework定义好的wsHttpBinding默认配置,所以看不到binding配置节。 ? 配置节展开如下图: ?...BTW: "元数据端点”通过WS-MetadataExchange帮我们实现了对服务的描述,提供了WSDL,启动Host之后我们可以通过http://localhost:8732/Design_Time_Addresses...使用 HTTP 协议,Text/XML 编码方式。 WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。...客户端配置文件: 配置节中,生成了4个Endpoint,分别对应服务端的4个Endpoint。通过 name属性区别。
我们现在直接可以在 standard 2.0下调用wcf服务了,不过 Microsoft WCF Web Service Reference Provider 目前是beta阶段,要使用这个插件,需要安装一个...使用WCF 更好的方式是使用Proxy 模式封装调用WCF服务,把 WCF服务的调用隔离到一个独立的项目中,这个给大家推荐一个github上的示例 https://github.com/geffzhang...该项目包括: 多个WCF服务 通过代理类通过消息合同连接的WCF服务的简单示例。...IoC使用SimpleInjector及其Wcf集成扩展 WCF代理实现 一个类库项目,它将实际的服务契约与代理实现相结合 简单的认证实现(还没实现) 调用的ASP.NET Core客户端用于演示用例...项目,打开关于引用和恢复软件包的上下文菜单 运行解决方案(Ctrl + F5 / F5),浏览器中看到以下结果: ?
什么是WCF Windows Communication Foundation (WCF) 是一个框架,用于生成面向服务的应用程序。...它取代了较旧的进程间通信技术,例如 ASMX Web 服务、.NET 远程处理、企业服务 (DCOM) 和 MSMQ。...WCF 将所有这些技术的功能汇集在一个统一的编程模型下,简化了开发分散式应用程序的体验。 使用 WCF,可以将数据作为异步消息从一个服务终结点发送到另一个服务终结点。...} // 使用下面示例中说明的数据约定将复合类型添加到服务操作。...在生成项目后,可以通过命名空间“WcfServiceDemo.ContractType”直接使用其中定义的数据类型。
对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现。...WCF服务定义成“累积计算服务”:保留上一次运算的结果,并将其作为后续运算的操作数。...:CalculatorService 服务的实现和.svc都定义在一个ASP.NET Web站点项目中。...那么对于ASP.NET兼容模式下的WCF也一样,要想让服务端能够识别会话,就需要让每个服务调用的HTTP请求携带Session的识别信息,我们也可以通过传递Cookie的方式来解决这个问题。...对于WCF来说,Cookie传递能够通过Binding来控制,对于WsHttpBinding来说,默认情况下并不允许Cookie的传递。
WCF宿主在IIS和普通应用程序里,原理虽然没什么不同,但在实际测试中发现,如果服务端与客户端都采用x.509证书来验证,服务端设置的自定义验证客户端证书的方法总是不起作用,无奈之下,只能在客户端采用了一种变相的方法来验证客户端证书...二.Wcf web服务端开发 1.vs2008启动后,新建一个web Application(本例命名为WebServer),添加一个wcf服务,命名为MyService,同样系统会自动增加一个..." x509FindType="FindBySubjectName" storeName="My"/>这一句指wcf服务启动时,先验证服务端是否在LocalMachine这个位置有一个SubjectName...欢迎转载,转载请注明来自cnblogs"菩提树下的杨过" 编后语: 本文演示了如何将WCF Host在IIS中,并对服务端和客户端都采用x.509证书方式来验证,当然这种方式要求每个客户端机器上都必须安装服务端颁发的证书...在互联网环境下,这可能会给客户端的使用带来麻烦,这时可以采用服务端用x.509方式验证,客户端用经典的用户名/密码的方式来验证,详情可参见http://www.cnblogs.com/fineboy/archive
步骤: 1.把同样的WCF服务,在多个端口上"启动"(即同时运行多个wcf的实例,但每个实例都监听不同的端口) 2.用svcutil.exe生成的代理类,里面有N多构造函数的重载版本,观察一下类似下面的这个版本...endpointConfigurationName) : base(endpointConfigurationName) { } 即传入配置名生与代码类的实例,我们在web.config...中的wcf配置节,做如下处理: wsHttpBinding...服务端的实例,配置多个name的endpoint节点 3.修改客户端的调用代码 把原来类似这样的代码: using (AstroServiceClient _client = new AstroServiceClient...服务端的host中挑一个,生成代码类实例 大功告成,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一
WCF系统内置绑定列表 绑定 配置元素 说明 传输协议 编码格式 BasicHttpBinding 一个绑定,适用于与符合 WS-Basic Profile的Web...服务(例如基于 ASP.NET Web 服务(ASMX)的服务)进行的通信。...此绑定使用HTTP作为传输协议,并使用文本/XML作为默认的消息编码 HTTP/HTTPS Text,MTOM WSHttpBinding wsHttpBinding> 一个安全且可互操作的绑定,适合于非双工服务约定...TransactionFlow绑定元素提供支持 HTTP/HTTPS Text,MTOM WSDualHttpBinding 一个安全且可互操作的绑定,适用于双工服务协定或通过...各系统绑定所支持的功能 绑定名称 传输性安全 消息级安全 WS*兼容性 WS*事务支持 持久可靠消息传送 可靠会话 性能 请求/响应 单向 双工 basicHttpBing √ √ √ 良好 √ √ wsHttpBinding
问题是这样的,他说他采用ASP.NET应用程序的方式对定义的WCF服务进行寄宿(Hosting),并使用配置的方式对服务的BaseAddress进行了设置,但是在创建ServiceHost的时候却抛出InvalidOperationException...一、问题重现 问题很容易重现,假设我们通过ASP.NET应用对服务CalculatorService进行寄宿,为了简单起见,我将服务契约和服务实现定义在一起。...对于WCF服务的自我寄宿(Self Hosting)或者采用Windows Service进行服务寄宿,我们可以通过代码或者形如上面的配置为服务指定一系列的BaseAddress(对于一个既定的URI...但是对于采用IIS或者WAS进行服务寄宿,我们需要为相应的服务定义一个.svc文件,我们通过访问.svc文件的方式来调用相应的服务。...答案是通过System.Web.Hosting.HostingEnvironment的静态属性IsHosted。
得到的初步解决方案如下: 1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 2、增加默认的连接数,系统默认的链接数比较小 3、提供同一个WCF服务的不同实例 1、在Web...端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 首先保证客户端每次建立的连接在使用完成后进行关闭。...服务的不同实例 3、首先查看一个WCF服务类 ?...服务端的host中挑一个,生成代码类实例,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一。...总结 暂时这三种方式有效地防止了WCF服务的再次挂掉,至少最近几天服务一直在稳定的运行,没有太大的异常,很是让人欣慰。不知道针对WCF服务的处理是否还有其他方式,也让博客园的大牛们来指点一二吧。
阿笨的回答就是:"取其精华"+"抽丝剥茧",千万不要"囫囵吞枣",最终导致“因噎废食”,这里阿笨给出的建议是学习下面几种绑定: 1)、BasicHttpBinding: 最简单的绑定类型,通常用于 Web...使用 HTTP 协议,Text/XML 编码方式。 2)、WSHttpBinding: 比 BasicHttpBinding 更加安全。...三、C# WCF如何通过优雅的方式进行统一入口调用 采用WCF服务代理工厂(WCFServiceProxyFactory),通过服统一入口给我们的调用者提供的服务吧。...五、实战演练之C# WCF如何通过优雅的方式进行统一入口调用) 客户端调用WCF服务可以通过添加服务引用的方式添加,这种方式使用起来比较简单,适合小项目使用。...服务端与服务端的耦合较深,而且添加服务引用的方式生成一大堆臃肿的文件。 本例探讨一种使用接口的方式使用WCF服务,克服通过服务引用方式产生的弊端。同时希望抛砖引玉,探讨更好的方式使用WCF。 ?
很多WCF的初学者是从之前的Web服务上转移过来的,他们非常怀念.asmx Web服务无配置的服务寄宿方式。...你只需要在定义Web服务的时候再表示服务操作的方法上应用WebMethodAttribute特性就可以了,完全可以不需要手工进行相应的配置,因为Web服务运行时会自动为你添加默认的配置。...但是对于WCF来说,在进行服务寄宿的时候,你必须以编程或者配置的方式为服务添加至少一个终结点,而终结点需要具备基本的ABC三要素。...对于最新版本的WCF编程人员来说,你也可以采用无配置的服务寄宿了,这主要得益于WCF提供的默认终结点机制。...之所以是四个默认终结点,其原因在于:WCF会为服务实现的每一个服务契约基于指定的每一个基地址创建一个终结点。
Soap全称Simple Object Access Protocol, 简单对象访问协议,他是一种交换数据的协议规范,是一种轻量的、简单的、基于xml的协议,它被设计成在WEB上交换结构化的和固化的信息...因为异常是不允许通过WCf的service channel 发送给客户端的,所以,服务端把Exception序列化为Soap格式的信息,然后发送给客户端。...我们先根据第九集的内容启用WCF的日志记录功能,然后在客户端调用服务,会生成一个svclog文件,双击打开,选择item,就可以看到具体的log message。 ?...然后来试验一下其他bingding,比如wsHttpBinding(这个以后会着重讲)。 首先是服务端的修改:把basicHttpBinding改成wsHttpBingding ?...然后rerun这个host 更新客户端的服务引用 ? 结束之后会发现,客户端的配置文件里面的binding也变成了wsHttpBinding ? 再次调用,然后打开svclog,看到如下结果: ?
第17集 WCF中未经处理的异常 Unhandled exceptions in WCF 这集讲一下WCF中服务端如果出现异常会怎么样。还是用上集的demo。...首先修改服务端的app.config 配置文件,先使用basicHttpBinding 使用wsHttpBinding 先改配置文件的endpoint节点 wsHttpBinding" contract="CalculatorService.ICalculatorService...起来,然后更新服务端的服务引用,可以看到如下: wsHttpBinding"...这集学习了不同Binding中WCF如何处理服务端的异常。 ThankYou!
领取专属 10元无门槛券
手把手带您无忧上云