草庐IT

c# - 将文件添加到现有Zip中-性能问题

我有一个WCFWeb服务,可将文件保存到文件夹(大约200,000个小文件)。之后,我需要将它们移至另一台服务器。我发现的解决方案是将它们压缩然后移动。当我采用此解决方案时,我使用了20,000个文件进行了测试,压缩20,000个文件仅花费了大约2分钟的时间,并且移动zip确实非常快。但是在生产中,压缩200,000个文件需要2个多小时。这是我压缩文件夹的代码:using(ZipFilezipFile=newZipFile()){zipFile.UseZip64WhenSaving=Zip64Option.Always;zipFile.CompressionLevel=Compress

c# - 高可用性

如果主端点死机,是否仍然可以配置具有故障转移端点的WCF服务?有点像能够在SQL集群中指定故障转移服务器。具体来说,我使用TCP/IP绑定(bind)来提高速度,但在机器不可用的极少数情况下,我想将流量重定向到故障转移服务器。不太担心丢失消息。我只是不想编写代码来处理重新路由。 最佳答案 您需要使用第4层loadbalancer在两个端点的前面。最好坚持使用专用硬件。 关于c#-高可用性,我们在StackOverflow上找到一个类似的问题: https://

c# - 有什么方法可以处理 ASMX 服务背后的异步/等待吗?

我有一个Web应用程序,它为JSON和ASMXWeb服务提供WCFRESTAPI。该应用程序已经存在了几年。它基于ASP.NET2.0,但在几年前升级到.NET4.0,我刚刚升级到.NET4.5以便能够使用新的异步框架。应用程序背后是一些遗留服务,我意识到通过异步提高性能的潜力很大。我在整个应用程序中实现了异步,并且一切都通过WCFRESTAPI完美运行。我发现ASMXAPI失败时为时已晚,我想要这样的方法:[WebMethod(Description="TakesaninternaltripIDasparameter.")]asyncpublicTaskGetTrip(inttrip

c# - 无法导入 wsdl :portType, wsdl :binding, wsdl:端口

我在使用SVCUtil为WCF生成代理时遇到错误。错误是Attemptingtodownloadmetadatafrom'net.pipe://localhost/WebServices/Mgmt.svc'usingWS-MetadataExchange.ThisURLdoesnotsupportDISCO.Error:Cannotimportwsdl:portTypeDetail:AnexceptionwasthrownwhilerunningaWSDLimportextension:System.ServiceModel.Description.DataContractSerial

c# - WCF 错误 : 405 Method Not Allowed

对这个问题很生气。我有一个包含2个项目的解决方案,其中一个是带有jqueryajax调用的普通旧html,而另一个是WCF服务。html页面将向WCF服务发出ajax调用以获取json字符串并将其用于显示目的。现在的问题是,每当我在Debug模式下运行时,html页面和WCF都将使用不同的端口启动。这在我执行测试时为我创建了一个跨域问题(即在Firefox中调用type=OPTIONS时出现405MethodNotAllowed错误)。我会三次检查我的ajax脚本上的调用方法,WCF服务是相同的(GET)。我会搜索谷歌,但发现我必须安装扩展或在IIS上执行一些配置,我发现这很麻烦,因为

c# - WCF 服务限制

假设我正在处理涉及发送大量数据的服务。如果我用WCF实现这个,WCF会根据每个请求需要多少内存来限制服务吗?或者每次我收到大量服务点击时,我是否会连续出现内存不足异常?我对在WCF之外处理这个问题很好奇,我对服务开发还是有点陌生​​...... 最佳答案 虽然像AndrewHare建议的那样使用绑定(bind)属性和readerQuotas基本上可以为大多数实际用途提供无限大小,但请记住,如果您接受长时间运行的命令,您将遇到其他问题,例如超时,无论该服务是如何构建的(使用或不使用WCF)。无论您的消息有多大,都需要限制WCF服务的性

c# - 跟踪日志位置,在哪里查看它们

在开发MVC或WCF应用程序时,您在哪里看到Trace.Write("");日志?正确的看点是什么? 最佳答案 当使用System.Diagnostics.Trace类时,Write方法写入其跟踪输出“tothetracelistenersintheListenerscollection.”默认情况下,Trace.Listeners属性仅包含DefaultTraceListener的一个实例,它将消息输出到调试器输出窗口。当然,要查看这些跟踪消息,您必须启用调试。因此,如果您在VisualStudio中调试WCF服务或ASP.NET

c# - 找不到 WCF 绑定(bind)错误?

我正在使用VSTS2008+C#+.Net3.0。我正在使用自承载WCF。执行以下语句时,出现以下绑定(bind)未找到错误。我已经发布了整个app.config文件,有什么问题吗?ServiceHosthost=newServiceHost(typeof(MyWCFService));错误信息,Configurationbindingextension'system.serviceModel/bindings/MyBinding'couldnotbefound.Verifythatthisbindingextensionisproperlyregisteredinsystem.ser

c# - Web 服务和远程处理有什么区别?

我了解网络服务并且对远程处理有一些了解。这两个概念都在客户端计算机上调用方法,所以区别在哪里??通过远程处理,我们还可以在远程机器上执行该方法,同样的功能也可以通过网络服务实现。如果这是一个明显的问题,请原谅.. 最佳答案 两者都支持分布式应用。Web服务是跨平台的,使用通用标准并通过防火墙工作。他们还根据消息而不是对象来思考-您向服务发送消息,然后您会收到回复。Remoting是一种仅限MS的技术,它不是跨平台的,并且以二进制格式进行对话。它从对象的角度考虑,您在远程服务器上创建一个对象并使用它。它不适用于防火墙。最近Remoti

c# - 在一个 WCF 服务中托管多个契约(Contract)

这个问题在这里已经有了答案:RunWCFServiceHostwithmultiplecontracts(8个答案)关闭9年前。是否可以在一个WCF服务中托管多个服务契约(Contract)?如果是这样,如何?我一直在谷歌上搜索,有些帖子说你可以做到(但不是怎么做),而其他人则说这是不可能的。当我运行服务器时,出现以下错误:Thecontractname'ConsoleAppWcfCommon.IBarService'couldnotbefoundinthelistofcontractsimplementedbytheservice'ConsoleAppWcfServer.FooSer