通过ASP.NET Web服务传输文件是超级慢
-
15-10-2019 - |
题
我们这里有一个旧的WSE3 ASP.NET Web服务,该Webs服务定义了一种方法 GetFileContent(string fileName)
. 。它的作用是检查带有传递名称的文件的预定义路径,读取其内容,base64-condode it it,然后将编码的内容发送回响应。
不幸的是,整个过程需要(变化)年龄。我编写了一个控制台客户端应用程序,该应用程序可以按需进行基准测试:有时2.5megs在12秒内转移,有时需要40秒。昨天昨天16秒内另一次27meg-file运行,今天花费了1分钟。
我检查了更多的事情:
CPU和交换性能不值得一提(在监视时,机器看起来很无聊)
网络速度就足够了。
客户发送请求后立即执行方法调用。
读取和编码平均需要500毫秒的大文件,因此在请求后也立即执行返回语句。
另一个客户(基于Java)甚至更慢,所以我想 可以 成为客户问题。
有人知道接下来要看这个讨厌的人吗?感觉像IIS麻烦了,真的...
预先感谢...
解决方案
首先,只是为了确保:希望您知道WSE已经过时了。
其次,WSE基于ASMX技术。这有大量要求的问题,因为它将在通往服务的路上复制四次或更多次传入数据。多么大的数据,假设在该服务启动该服务之前,它至少要花费至少四倍的内存。
解决方法是升级到WCF。
其他提示
我相信IIS没有麻烦。我怀疑有时会花费更多的时间来解决IP,如果给出了共享路径,则需要花费更多的时间。
不隶属于 StackOverflow