1

我们这里有一个旧的 WSE3 ASP.Net web 服务,它定义了一个方法GetFileContent(string fileName)。它所做的是检查具有传递名称的文件的预定义路径,读取其内容,对其进行base64编码并将编码的内容作为响应发送回。

不幸的是,整个过程需要(不同)年龄。我编写了一个控制台客户端应用程序,可以按需对性能进行基准测试:有时 2.5Megs 在 12 秒内传输,有时需要 40 秒。另一个 27Meg 文件昨天在 16 秒内运行,今天花了 > 1 分钟。

我检查过的其他事项:

  • CPU和Swap性能不值一提(监控上,机器看起来很无聊)

  • 网速足够。

  • 客户端发送请求后立即执行方法调用。

  • 一个大文件的读取和编码平均需要500ms,所以return语句也是在请求之后立即执行的。

  • 另一个客户端(基于 Java 的)甚至更慢,所以我想这可能是客户端问题。

有人知道下一步该去哪里寻找这个讨厌的人吗?感觉像IIS麻烦,真的...

非常感谢提前...

4

2 回答 2

0

首先,只是为了确保:我希望你知道 WSE 已经过时了。

其次,WSE 基于 ASMX 技术。这对大请求有问题,因为它会在到达服务的途中将传入数据复制四次或更多次。无论您的数据有多大,假设它至少需要四倍的内存,然后服务甚至可以使用它。

解决方法是升级到 WCF。

于 2011-03-12T01:40:27.443 回答
0

我相信IIS没有问题。我怀疑有时如果给出共享路径路径而不是实际路径,则解析 IP 需要更多时间。

于 2011-01-04T10:44:38.687 回答