C# WCF到ASMX绑定返回大数据的速度比标准web引用慢得多
我正在使用WCF服务引用绑定到现有的ASMX web服务。我有一个方法返回一个DataSet对象,该对象包含一个长度为500k的字符串 作为标准的“老派”web参考,调用此方法大约需要2-3秒才能完成。作为WCF服务参考,这需要20多秒才能完成。这正在对我们的系统产生影响:( 我尝试过修改绑定以最大化所有的maxReceivedMessageSize和maxBytesPerRead等,但没有任何区别C# WCF到ASMX绑定返回大数据的速度比标准web引用慢得多,c#,wcf,asmx,service-reference,web-reference,C#,Wcf,Asmx,Service Reference,Web Reference,我正在使用WCF服务引用绑定到现有的ASMX web服务。我有一个方法返回一个DataSet对象,该对象包含一个长度为500k的字符串 作为标准的“老派”web参考,调用此方法大约需要2-3秒才能完成。作为WCF服务参考,这需要20多秒才能完成。这正在对我们的系统产生影响:( 我尝试过修改绑定以最大化所有的maxReceivedMessageSize和maxBytesPerRead等,但没有任何区别 为什么WCF引用速度会慢得多?我能做些什么来解决这个问题?您确实需要查看许多方面,尤其是您在比较
为什么WCF引用速度会慢得多?我能做些什么来解决这个问题?您确实需要查看许多方面,尤其是您在比较数据量方面的相似之处。可能是其他因素导致了速度的减慢 我的第一个问题是,为什么要将其更改为WCF?是否有具体的原因?我知道这是正确的做法,但是否有具体的原因意味着现在需要进行更改?是否对接口进行了任何可能产生广泛影响的更改
由于对象处理的原因,WCF可能会稍微慢一点,但它不应该有这样的区别。这一切都表明环境中的其他东西才是真正的问题。使用的是什么类型的绑定?有BasicHttpBinding和WSHttpBinding,要模拟asmx,BasicHttpBinding是推荐使用。一般来说,WCF至少应与asmx对应版本相当。如果没有帮助,请尝试调整WCF的并发设置和实例化模式。这里似乎有一些问题
传输前后的消息大小是多少?首先要弄清楚这是否与带宽和处理开销(安全性等)有关。500k不是不合理的。您是否尝试过查看WCF跟踪(针对客户端)和IIS日志(针对服务器)要查看花费的时间在哪里?听起来像是在客户端,但最好缩小问题范围。此外,是否每次调用都会出现减速?如果您连续调用该服务10次,每次的性能是否相同?它没有更改,它始终是wcf引用,添加web引用是为了测试速度由于我们有其他应用程序从相同的web服务下载相同的数据,没有任何速度问题。我想补充一点,此web服务确实存在于https上的ssl证书之后。好的,界面的某些部分会降低速度(WCF和ssl),但不是很重要,除非你正在处理大量数据。这将表明环境发生了变化。你能用新旧学校和新学校的方法进行测试,并比较时间吗?然后我建议确保数据库访问是相同的。没有直接的答案,也不应该有直接的答案如果存在这种差异,那么您必须找出问题的根源。他无法在客户端上使用wsHttpBinding绑定到现有的asmx服务。很明显,他使用的是basicHttpBinding。实际上,每个人的工作都是不断改进问题和答案。感谢您改进您的answeR