首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WCF服务不在服务中保留引用类型

是指在Windows Communication Foundation (WCF)服务中,不会将引用类型的数据保留在服务中。

引用类型是指在.NET中通过引用进行传递的数据类型,例如类、接口、委托等。在WCF服务中,默认情况下,引用类型的数据是不会在服务中保留的。这意味着当客户端通过WCF服务发送引用类型的数据给服务端时,服务端只会在处理请求的过程中使用这些数据,而不会将其保留在服务中。

这种设计决策是出于性能和资源管理的考虑。由于WCF服务通常是分布式的,可能会有多个客户端同时访问服务,如果服务在每个请求中都保留引用类型的数据,会导致服务的内存占用过大,降低系统的性能和可伸缩性。

然而,如果需要在服务中保留引用类型的数据,可以通过使用[ServiceBehavior]属性的InstanceContextMode属性来进行配置。将InstanceContextMode属性设置为InstanceContextMode.PerSessionInstanceContextMode.Single,可以使得服务在每个会话或整个应用程序生命周期中保留引用类型的数据。

总结一下,WCF服务不在服务中保留引用类型是为了提高性能和资源管理。如果需要在服务中保留引用类型的数据,可以通过配置InstanceContextMode属性来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WCF RESTful服务的Google Protocol Buffers超媒体类型

要遵循REST的原则, protocol buffers 应作为一个新的超媒体类型的代表。 在当前版本(.NET 4) 的Windows通讯基础(WCF),包含一个新的媒体类型,需要相当数量的努力。...幸运的是,新版本的WCF HTTP堆栈,使媒体类型WCF编程模型的一等公民,大家可以Glenn Block’s 博客去了解更详细的内容。...人们经常认为媒体类型只是在服务端使用,但是它用来在客户端控制序列化和反序列化的要求,下图显示了一个HTTP 请求/响应和媒体类型格式化扮演的角色: ?...使用的媒体类型是application/x-protobuf ,REST服务的核心原则就是服务器和客户端之间的松耦合性,客户端需要知道书签的URI,但不应该知道任何其他的URI的知识,但是客户端必须知道链接关系...            httpClient.PostAsync(serviceUri,content); 即使目前来说Google Protocol Buffers没有XML/JSON那样普及,RESTful服务使用

96370
  • WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法

    - 无法从传输连接读取数据: 远程主机强迫关闭了一个现有的连接。。 - 远程主机强迫关闭了一个现有的连接。...如果该服务已在当前解决方案定义,请尝试生成该解决方案,然后再次添加服务引用。 该错误是在使用svcutil生成client代码时报的错误,服务是部署在IIS7上,部署的过程都是完全教科书式的进行。...web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。...1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。 ?...2、WCF客户端通过web服务引用时候,http://10.198.1.21:8089/Service1.svc 一直无法正常的添加引用。 ?

    1.5K10

    WCF技术剖析之二十: 服务WCF体系是如何被描述的?

    任何一个程序都需要运行于一个确定的进程,进程是一个容器,其中包含程序实例运行所需的资源。同理,一个WCF服务的监听与执行同样需要通过一个进程来承载。...服务寄宿的手段是为一个WCF服务类型创建一个ServiceHost对象(或者任何继承于ServiceHostBase的对象)。...WCF服务描述通过类型System.ServiceModel.Description.ServiceDescription表示,ServiceDescription对象是WCF服务运行时的描述。...除了包含WCF服务的一些基本信息,比如服务的名称、命名空间和CLR类型等,ServiceDescription还包含服务所有终结点和服务行为的描述。...: Behaviors:服务行为(Service Behavior)的集合 ConfigurationName:服务的在配置文件的名称,默认为服务类型的全名(命名空间+类型名称) Name:

    99560

    使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS托管WCF服务3.使用PHP调用托管在IISWCF服务

    上一篇,使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS(并不是必须的,还是有其他的方式的 比如windows azure) 1.系统必备      首先,必须打开...2.在IIS托管WCF服务      在IIS默认网站添加应用程序emp,并在高级设置,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,在http类型编辑IP地址和主机名...在新建的虚拟目录对应的实际目录,添加web.config文件,配置wcf服务和终结点,并打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管在IISWCF服务 在PHP服务打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...> 开启php服务器,访问页面,出结果: ? 下一章将续写java访问WCF服务的具体操作,可是已经到饭点啦。先做个决定。。。。。

    2.1K70

    我的WCF之旅(1):创建一个简单的WCF程序

    项目的类型、承载的功能和相互引用关系如下,整个项目在VS下的结构如图2所示。...在上面的例子,基于WCF服务类型(typeof(CalculatorService))创建了ServieHost对象,并添加了一个终结点。...图6 添加服务引用 在一系列自动生成的类,包含一个服务契约接口、一个服务代理对象和其他相关的类。...此外,WCF采用基于契约的服务调用方法,从上面的例子我们也可以看到,VS在进行服务引用添加的过程,会在客户端创建一个与服务端等效的服务契约接口。...在我们的例子,由于服务端和客户端都是在同一个解决方案,完全可以让服务端和客户端引用相同的契约。 为了演示这种场景,我们将添加的服务引用移除,并为Client项目添加对Contracts项目的引用

    66121

    使用C#创建及调用WCF完整实例 (Windows服务宿主)

    2008 R2 + VS 2010(C#) 打开 VS 2010,选择 新建项目,选择 ”WCF”|”WCF 服务库 ”,注意这里是”WCF 服务库 ”,不是"WCF 服务应用程序" ?...开始宿主程序 右击解决方案,添加|新建项目”Windows”|”Windows 服务”,项目名就默认吧,不改了 在Windows服务项目中添加WCF服务库的引用 ? ?...右击引用|添加服务引用服务地址在windows服务项目中App.config文件,依次展开找到system.serviceModel|services|service|host|baseAddresses...(下载连接的教程此图使用错误,应该是这样的图,教程中使用的是在WindowsService1服务引用的图) ? ?...此时,服务地址是localhost,所以可以直接引用成功,如果服务地址是一个网络地址,需要在宿主服务器中将服务启动后才可以引用服务,否则会提示找不到服务

    4.6K70

    WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)

    二、数据契约序列化器(DataContractSerializer) 在WCF,数据契约的定义是为序列化和反序列化服务的。...为了确保序列化或反序列化的成功,须要相关的类型添加到KnownTypes类型集合; MaxItemsInObjectGraph:为了避免黑客生成较大数据,频繁地访问服务造成服务器不堪重负(...数据类型有值类型引用类型之分,那么对于一个数据契约类型对象,如果多个数据成员同时引用同一个对象,那应该采用怎样的序列化规则呢?...是保留现有的引用结构呢,还是将它们序列化成具有相同内容的XML片断。...我们可以很明显地看出,在不保留对象引用的情况下,CompanyAddress和ShipAddress对应着两段具有相同内容的XML片断,而在保留对象引用的情况下,它们则是引用同一个XML元素。

    1.7K90

    使用 WCF Web Service Reference Provider 工具

    此操作将显示“配置 WCF Web 服务引用”向导 : 选择服务。 3a....“配置 WCF Web 服务引用”向导中提供了多个服务搜索选项 : 要搜索当前解决方案定义的服务,请单击“发现”按钮 。...“数据类型选项”窗体可用于优化生成的服务引用配置设置: 备注 如果在项目的引用程序集中定义了服务引用代码生成所需的数据类型,则“重新使用引用程序集中的类型”复选框选项将非常有用 。...加载过程,“完成”按钮被禁用,除非未选中“重新使用引用程序集中的类型”复选框 。 完成后,单击“完成” 。 在显示进度的同时,工具: 从 WCF 服务下载元数据。...进度完成后,可创建生成的 WCF 客户端类型的实例并调用服务操作。

    1.9K30

    dotnet 教你写一个可以搞炸本机所有 WCF 应用的程序方法

    在开始之前,咱先来复习如何制作一个简单的 WCF 服务端和客户端的方法。...为了使用上 WCF 在 csproj 上添加 System.ServiceModel 的引用 在 SDK Style 的 csproj 项目文件上,添加对 WCF 引用的方法是在 csproj 上添加如下代码... 按照惯例,定义类型,此类型将包含一个类和一个接口...这部分基础知识不在本文描述,更多基础知识请参阅本文最后的由换头像大大编写的入门博客 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single...预期是服务端的 DataServer 的 Foo 方法将会被客户端进行调用,被客户端传入了 "123" 在服务端的控制台输出 接下来开始开发一个用来捣乱的 WCF 控制台,这是一个 WCF 服务端。

    48020

    tke如何通过clb类型ingress转发集群内和集群外服务

    一般集群提供对外服务,都是用clb类型的ingress,那么如何将集群外cvm自建的服务也加到ingress的clb上呢?...其实这里还是有办法的,我们可以用endpoint的方式来引入外部服务到集群内,然后ingress转发到外部服务的svc即可。 但是这里还是有限制,就是ingress不能用直连类型,为什么不行呢?...这里只能用非直连的ingress,非直连的ingress,是绑定的集群内每个节点nodeport,我们只需要用endpoint引入外部服务,然后创建一个nodeport类型的svc绑定这个endpoint...下面我们具体来实践下,首先我们在集群外部署一个nginx服务,然后集群内有一个springboot的接口服务,我们通过一个clb类型ingress来转发 创建下endpoint和svc将外部服务引入到集群...kind: Endpoints apiVersion: v1 metadata: # 此处 metadata.name 的值要和 service 的 metadata.name 的值保持一致

    1.2K10

    菜菜从零学习WCF十(序列化)

    如果您无法控制相应的类型,则将ignoreExtensionDataOjbect参数设置为true也可获得同样的效果。 对象图保留此方法具有以下可能不需要的特征:   性能。复制数据的效率低。   ...在将此参数设置为true时,将使用只有WCF才可以理解的编码引用的特殊方法。   “ser”命名空间引用标准序列化命名空间。...手动切换到XmlSerializer   将应用程序从ASP.NET Web 服务迁移到WCF时,您可能需要重写现有的、与XmlSerializer兼容的类型,而不是创建新的数据协定类型。   ...当对出现在消息的XML的精确控制很重要,而Web服务描述语言(WSDL)文档不可用时,例如,在使用必须遵循某个已标准化且已发布的架构(与DataContractSerializer不兼容)的类型来创建服务时...如果在选择了XmlSerializer类的服务协定不慎使用了该类型,则将序列化creitCardNumber成员,这可能并不是想要的结果 关于XmlSerializer序列化实例,有服务,有客户端调用代码示例

    1.1K30

    我的WCF之旅(1):创建一个简单的WCF程序

    项目的类型、承载的功能和相互引用关系如下,整个项目在VS下的结构如图2所示。...在上面的例子,基于WCF服务类型(typeof(CalculatorService))创建了ServieHost对象,并添加了一个终结点。...图6 添加服务引用 在一系列自动生成的类,包含一个服务契约接口、一个服务代理对象和其他相关的类。...此外,WCF采用基于契约的服务调用方法,从上面的例子我们也可以看到,VS在进行服务引用添加的过程,会在客户端创建一个与服务端等效的服务契约接口。...在我们的例子,由于服务端和客户端都是在同一个解决方案,完全可以让服务端和客户端引用相同的契约。 为了演示这种场景,我们将添加的服务引用移除,并为Client项目添加对Contracts项目的引用

    89790

    WCF版的PetShop之一:PetShop简介

    PetShop将业务逻辑的实现定义在一个个WCF服务之中。WCF服务采用基于IIS的寄宿方式,部署于应用服务器。...模块的自治特性并不意味着模块之间不存在依赖,依赖在软件设计无所不在,设计的目标往往不是在于剔除依赖,而在于降低或者转移依赖。一个模块需要使用到另一个模块提供的功能,依赖便产生了。...Hosting对应一个IIS下的虚拟目录,所有WCF服务项目编译后的程序集都会生成到该目录下的/Bin子目录下,Hosting还包括基于WCF服务的.svc文件。...,所以不须要引用到Infrastructures,仅仅须要引用Infrastructures.Interface,这无形之中降低了上层模块与基础模块的依赖性。...WCF版的PetShop之二:模块的层次划分[提供源代码下载]

    68960

    使用WCF进行跨平台开发之一(WCF的实现、控制台托管与.net平台的调用)1.创建项目结构2.契约的设计3.实现服务4.控制台托管服务5.在.net平台中调用WCF

    这两个命名空间中包含ServiceContractAttribute等WCF需要的契约特性类,和对复杂类型序列化的类DataContractSerializer。 ?     ...4.控制台托管服务      在ConsoleHost添加对以上两个项目的引用,这时,生成整个解决方案,然后在ConsoleHost添加应用程序配置文件App.config。...并使用WCF服务配置编辑器打开它,并配置服务托管地址和绑定类型等信息,最终配置结果为 <?xml version="1.0" encoding="utf-8" ?...5.在.net平台中调用WCF 在Client,添加服务引用,命名空间设置为ServiceReference ?...在这里,我们已经简单的实现了WCF服务的实现和.net本平台调用WCF,这一篇不是最重要的,下一篇是使用IIS托管WCF并使用PHP调用WCF

    1.3K90
    领券