2024-06-25 14:31:28
勇哥注:此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。wcf的安全机制分为消息级与线路级1。所有的wcf服务,不要使用证书(SSL证书,用于传输上的加密),证书很贵划不来 证书一个域名4K。 如果是 IOS下的webapi,是必须要证书的。2。非证书使用方式 如果你的wcf需要对外,那么增加验证是必须的。 (1)如果对方是C#程序,可以在c...
2024-06-25 14:18:35
下图上半部分是正常的访问。下半部分通过插入一个EndPointBehavior,起到类似aop的作用,可以用于篡改message,做一些类似监控的事情 。一。端点行为 EndpointBehavior【aop】动态篡改message二。service方法的实时调用量统计做类似于监控的作用1. Dowork TotalCount2. GetStudent TotalCount还可以做服务...
2024-06-25 10:48:05
勇哥注:此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。(一)为什么需要分布式事务?见下图,Client需要向192.168.10.2的服务器请求处理ProductNum--, 然后再向192.168.10.1的服务器请求处理AddOrder。由于请求跨了不同的服务器,因此需要分布式的事务来处理此种情况。(图1)分布式事务ACID [单机版]将多个节点的操作纳入一个...
2024-06-25 09:06:24
勇哥注:此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。WCF的Behavior [运行时改变wcf的行为]wcf的behavior是wcf的服务运行时提供的功能。如下图:常用的behavior有三类:服务行为 [ServiceBehavior] 实例行为,事务行为,并发行为,限制行为端点行为 [EndPointBehavior] 消息检查,调度行...
2024-06-24 19:50:27
勇哥注:此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。 wcf的预定义绑定 (1)ws*开头的绑定 【用于跨语言互通】 webservice模式 【BasicHttpBinding, WsHttpBinding】 restful模式 【WebHttpBinding】 (2) net开头的绑定 【用于.net 程序之间的互通】 直边式...
2024-06-24 17:23:08
勇哥注:此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。一. 数据绑定dataContract在适配CLR类型和WSDL的XLD之间的灵活应用xsd是描述数据类型的,.net, java的程序最终生成的数据契约都是xsd的不同的语言都是根据XSD生成各自平台下的强类型。1. 普通的类2. 集合类类型3. 字典类型4. 枚举二. 对集合和枚举类型,要解决的坑 对服务...
2024-06-24 07:59:13
勇哥注:此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。(一)wcf的概念和定位1. 历史进程面向对象:解决代码维护性问题【设计模式】面向组件:解决利用性问题[react, html->一个个页面分成各个组件[es6 jsx, scss],让js成了一个面向对象的语言] 面向服务:解决多系统互通问题【跨平台,跨语言】否则写的系统 ,不能被别的系统调用。2。...
2024-06-22 11:20:49
WCF4.0进阶系列--第一章 WCF简介https://www.cnblogs.com/yang_sy/archive/2011/05/10/2041741.htmlWCF4.0进阶系列--第二章 寄宿WCF服务https://www.cnblogs.com/yang_sy/archive/2011/05/16/2046599.html WCF4.0进阶系列--第三章 构建健壮的程序和服务htt...
2024-06-21 16:46:53
KnowType指定 DataContractSerializer 在序列化和反序列化给定类型时应识别的类型ServiceKnownType指定序列化或反序列化时服务要使用的已知类型父类:
namespace Contracts.Model
{
//[KnownType(typeof(ChildModel))]
public class ParentModel...
2024-06-21 16:33:37
1:WCF异常在配置文件<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="serviceDebuBehavior">
<se...
2024-06-21 16:08:38
本篇博文只是简单说下WCF中的契约的种类、作用以及一些简单的代码示例。在WCF中契约分为服务契约、数据契约和消息契约。下面对这几种契约进行简单的介绍。服务契约服务契约描述了暴露给外部的类型(接口或类)、服务所支持的操作、使用的消息交换模式和消息的格式。每个WCF服务必须实现至少一个服务契约。使用服务契约必须要引用命名空间System.ServiceModel 。服务契约中常用到的三个特性:Serv...
2024-06-21 15:45:32
学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么对于一般的应用就足够了。要做到这一点就很容易了,微软秉承了一贯的方式,将WCF这门技术优雅地呈现给开发者,封装了复杂的实现逻辑,提供了易于调用的类库和相关的工具,使得开发者能够快速地完成WCF程序的开发。另外一种方式自然就是深度挖掘WCF的内部...
2024-06-21 15:44:23
Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。构建一个WCF程序通常分为三个部分:服务类(Server)、宿主(Host)、客户程序(Client)。有一个很重要的...
2024-06-21 15:40:28
我们首先先新建一个WCF服务项目(代码没有改变,都是默认生成),然后把它部署到IIS上面,为我们下面客户端调用做准备(当然IIS宿主只是其中一种,还有Windows服务、Winform程序、控制台程序中进行寄宿); 方式一:利用工具svcutil.exe命令生成代理类 svcutil.exe {终结点}/out:{输出文件.cs} /config:{配置文件.config}...
2024-06-21 15:34:51
实例上下文(InstanceContextMode):可以简单地理解为服务端的服务实例与客户端的服务代理之间的关联方式;它主要包括三种模式:(1)单调 Per-Call (2)单例Single (3)会话Per-Session 它是作用在实现服务契约上1:首先介绍单调模式Per-Call:代码如下:[PerCall]
public class CalculatorService : ICalc...
2024-06-17 15:56:32
勇哥注:wcf的REST服务,其实就是WCF Web HTTP服务,跟web api相似。由于WebServiceHost已经包含了ServiceHost的所有功能,并额外添加了Web HTTP端点的支持。如果你想同时包含SOAP端点和REST端点,可以在app.config中一并定义了。客户端:浏览器访问的效果:Service.InterfaceContract.csusing System;...
2024-06-14 16:12:17
(一)ChannelFactory<T>的缓存机制ChannelFactory<T>是一个复杂费时的工作,wcf内部使用缓存机制提高服务调用性能 CalculatorClient proxy1 = new CalculatorClient("calculatorservice"); proxy1.Open(); CalculatorClient prox...
2024-06-14 13:53:56
通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态。说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.ServiceModel.CommunicationObjectFaultedException: 通信对...
2024-06-13 13:57:14
勇哥注,下面的程序是摘自蒋金楠的文章:他是wcf方面的权威 https://www.cnblogs.com/artech/archive/2007/02/26/656901.html 我把这个程序做为后面文章的起始代码用。这个程序用的是vs2017。目前的wcf的hosting端只能用在.net framework里,.net core用不了。而client端,在两边都是可以使用的。在.net f...
2024-06-13 10:07:12
一个现实的需求:一个wcf net.tcp连接会在10分钟后超时,然后断开了连接
(复现方式是:通讯一次就不再动作),你必须重启客户端程序。在WCF中,net.tcp连接的超时设置可以在服务配置文件中进行调整。以下是一些可能有用的信息和建议:超时设置:在WCF服务的配置文件中,可以设置连接超时时间。以下是一个示例配置:<bindings>
<netTcpBinding&g...
2024-06-08 11:07:23
是的,WCF已经开源。以下是关于WCF开源的详细信息:开源时间:微软在2015年将其Windows Communication Foundation(WCF)分布式服务框架开源,并并入.NET Foundation项目。开源内容:WCF的开源版本由以下几个库组成:ServiceModel.Primitives、ServiceModel.Http、ServiceModel.NetTcp、Servic...
2024-06-06 16:48:20
这篇讨论两个话题:REST服务跟RESTful说的是同一个东西吗?REST服务和RESTful在大多数情况下可以被视为同一个概念,但它们在具体的定义和用法上存在一些细微的差别。
REST服务的定义:
REST服务是一种Web服务架构,其目标是为了创建具有良好扩展性的分布式系统。
REST服务基于客户/服务器模型,使用HTTP协议进行通信,并支持无状态、可缓存、层次化的系统设计。
RES...
2024-06-06 10:45:38
勇哥注:这个系列借着盘点WCF知识点的时机,顺便验证一下勇哥的一个新想法: 打造一个内网的Halcon视觉处理中心节点。这个中心节点是运行在全网络中算力最强的机器上,其它若干客户端通过网络以事务请求的方式让中心结点进行计算,最后传回处理结果。本系列贴子要求您已熟悉下面的技术栈:wpf(了解), halcon(基础应用), wcf(了解), C#(高级)(一)基本wcf应用创建过程回顾 基本的Wcf...
2024-05-17 09:28:12
webapi和wcf的比较(一)webapi的特点最明显的特点是它是一种资源为导向的通讯方式。使用标准HTTP动词如GET、POST、PUT、DELETE等,适用于所有的资源的增删改查操作,使得使用变得简单明了。WebApi使用轻量级的Json格式进行数据传输,相比WebService使用的XML格式,传输性能有明显的提升WebApi完全支持路由,使得URL的设计更加灵活。同时,它还支持模型绑定和...
2024-04-25 10:52:05
上一个系列主要描述工作流服务,WCF 与WF 是如何相互关联、一起使用的。本篇主要描述WCF对创建分布式应用非常常见的对等网的支持和扩展,相信大家对P2P已经非常熟悉,但是对基于WCF架构的P2P会很新奇,本系列将就这方面做深入的探讨。[第1篇] 对等网很多开发人员在创建分布式应用程序时会考虑客户端-服务端或者n-层结构模型。另外一个通常会被忽略的创建分布式应用程序的方案是点到点(P2P)模型。大...
2024-04-25 09:23:44
下面的wcf配置中,有两个终结点,为什么配置成这样呢?<service name="SMotionHardwareLayer.MotionCardRes.DMC3400A.AxisRealization" behaviorConfiguration="Dmc3000IAxisAPI">
<host>...
2024-04-25 09:08:11
SvcUtil.exe是一个VS命令行工具,该工具位于:C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin 或 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\一般情况下我们将SvcUtil.exe添加到VS开发工具中方便以后的运用(也可直接使用该命令行工具)。1)在VS中的 Tool...
2024-04-25 08:06:14
只使用代码而不用配置文件的情况不适合IIS为宿主的情况,IIS宿主必须使用配置文件配置WCF的ServiceHost。1、服务端1.1. 准备Contract和实现Contract的服务很简单的一个Contract(Interface)和实现这个Contract(实现这个接口的类)的服务。这是VS2005中使用add new item,选WCF Service后自动生成的一个模板例子服务代码...
2024-04-15 09:03:17
勇哥注:全双工方式,如果是从dll调用wcf服务的话,因为无法引用服务以及用app.config配置终结点信息,只能通过硬编码方式来进行。在网上,DuplexChannelFactory比ChannelFactory更难查到资料。因此在这里放上一些代码,供大家参考。示例1: RobotClient public RobotClient()
{ // Initilize communic...
2024-04-11 09:42:23
在学习和测试 WCF 的时候,我通常使用 ChannelFactory 来代替 Client Proxy。原因是方便,无须创建多个 Project / Class。当然,在正式开发中还是使用 Client Proxy 要好些,毕竟 ChannelFactory 直接依赖于契约,违背了 SOA 边界隔离的原则。使用 ChannelFactory 很简单,但完成方法后要及时调用 Close 或 Dis...