草庐IT

c# - .Net Remoting 与 WCF

我想知道我可以从.net远程处理和WCF做同样的事情,那么为什么WCF比.Net远程处理更受欢迎。我可以在哪里(或在什么情况下)选择.Net远程处理或WCF? 最佳答案 .NETRemoting应用程序可以使用HTTP、TCP和SMTP协议(protocol),而WCF可以使用命名管道和MSMQ以及所有这些协议(protocol)。您可能会在这里找到最佳答案:From.NETRemotingtotheWindowsCommunicationFoundationConclusionAsyouhaveseen,amigrationfro

c# - WCF ConcurrencyMode Single 和 InstanceContextMode PerCall

我的wcf服务配置有问题。我希望每次调用我的服务时都创建一个新的服务实例。对于并发性,我希望一个调用在另一个调用开始之前完成。因此,如果我有这样的服务:[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Single,InstanceContextMode=InstanceContextMode.PerCall)]publicclassMyService:IMyService{publicboolMyServiceOp(){Debug.WriteLine("thread"+Thread.CurrentThread.ManagedThread

c# - WCF:序列化和反序列化泛型集合

我有一个拥有通用列表的类(class)团队:[DataContract(Name="TeamDTO",IsReference=true)]publicclassTeam{[DataMember]privateIListmembers=newList();publicTeam(){Init();}privatevoidInit(){members=newList();}[System.Runtime.Serialization.OnDeserializing]protectedvoidOnDeserializing(StreamingContextctx){Log("OnDeserial

c# - WCF channel 和 ChannelFactory 缓存

所以我决定稍微提高我的WCF应用程序的性能,并尝试缓存Channels和ChannelFactory。在开始之前,我需要解决所有这些问题中的两个问题。1)ChannelFactory是否应该作为单例实现?2)我不太确定如何缓存/重用单个channel。您是否有可以分享的有关如何执行此操作的示例?可能很重要的一点是,我的WCF服务被部署为一个独立的应用程序,只有一个端点。编辑:感谢您的回复。不过我还有几个问题...1)我想我对应该在何处进行缓存感到困惑。我正在向我们公司的另一个部门提供使用此代码的客户端API。此缓存是否发生在客户端?2)客户端API将用作Silverlight应用程序的

c# - 将 ASMX 转换为 WCF Web 服务需要付出多少努力?

我有2个web服务,总共有大约6个web方法,大部分代码都以任何方式放在程序集中,而web服务asmx实际上只是调用这些程序集方法并返回它们的返回类型。将Web服务从ASMX转换为WCF需要付出多少努力?在这个阶段我几乎只控制连接到Web服务的非基于Web的客户端,所以这不是真正的问题,产品处于预启动阶段。 最佳答案 查看一些关于如何做到这一点的博客文章和文章:MigratingASMXtoWCF(不幸的是,此链接不再有效)PhasedMigrationFromASMXtoWCFASMXtoWCFmigration还有更多-搜索“将

c# - WCF HttpTransport : streamed vs buffered TransferMode

我有一个自承载的WCF服务(v4框架),它通过基于HttpTransport的自定义绑定(bind)公开。绑定(bind)使用自定义MessageEncoder,它几乎是一个BinaryMessageEncoder添加了gzip压缩功能。Silverlight和Windows客户端使用Web服务。问题:在某些情况下,服务必须返回非常大的对象,并且在响应多个并发请求时偶尔会抛出OutOfMemory异常(即使任务管理器报告进程有~600Mb)。异常发生在自定义编码器中,当消息即将被压缩时,但我相信这只是一个症状而不是原因。异常状态为“无法分配xMb”,其中x为16、32或64,不是一个太

c# - WCF 终结点的默认超时值

有人知道WCFWeb服务中服务端点超时的默认值吗? 最佳答案 根据MSDN,sendTimeout为1分钟,receiveTimeout为10分钟:http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.binding.sendtimeout.aspxhttp://msdn.microsoft.com/en-us/library/system.servicemodel.channels.binding.receivetimeout.aspx

c# - WCF:base.Channel 调用中不存在指定的注册表项

当执行以下WCF代码时出现错误:“指定的注册表项不存在”:returnbase.Channel.GetRateSheet(request);这是使用this的方法的其余部分:publicGetRateSheetResponseGetRateSheet(GetRateSheetRequestrequest){returnbase.Channel.GetRateSheet(request);}这个端点的配置是:这段代码曾经工作了好几个星期,今天早上开始抛出这个错误。没有内部异常,我得到的唯一堆栈跟踪是:atMicrosoft.Win32.RegistryKey.Win32Error(Int

c# - 自托管服务上的 WCF Streaming 大数据 (500MB/1GB)

我目前在尝试使用WCF自托管服务(无IIS)发送大数据时遇到问题。使用流传输结果传输500MB,我的服务因System.OutOfMemoryException而崩溃。有可能传输如此大量的数据吗?这是我的WCF配置:我的客户端配置: 最佳答案 您不需要将ma​​xBufferSize或ma​​xBufferPoolSize设置得太高,它们可能会导致内存不足异常。默认值应该没问题。查看LargeDataandStreaming在MSDN上,特别是SpecialSecurityConsiderationsforLargeData这段文字

c# - WCF DataContract DataMember 命令?

是从按字母顺序创建的DataContract创建的xml。我有一个DataContract类定义为:[DataContract(Name="User",Namespace="")]publicclassUser{[DataMember]publicstringFirstName{get;set;}[DataMember]publicstringLastName{get;set;}[DataMember]publicstringEmail{get;set;}[DataMember]publicstringPassword{get;set;}}当我执行以下POST时:abc123email