【问题标题】:ASMX Still slow after 'Generate serialization assembly'“生成序列化程序集”后,ASMX 仍然很慢
【发布时间】:2010-06-03 01:37:41
【问题描述】:

此问题与:ASMX Web Service slow first request有关。

我继承了旧版 ASMX 服务的代理。基本上正如上面的帖子所说,第一次调用的性能实际上比随后的调用慢 10 倍。我继续在包含代理的项目上打开“生成序列化程序集”。实际上生成了“序列化程序”程序集。但是,我根本没有看到任何性能提升。除了确保“序列化程序”程序集位于客户端的 bin 目录中之外,我还需要做任何其他事情吗?在代理生成(wsdl.exe)期间,我是否必须将代理“链接”到“序列化程序”程序集?我想我被困在这一点上。 J Saunders 你在哪里? :)

【问题讨论】:

    标签: asmx


    【解决方案1】:

    实际上,启动时间不仅仅是创建序列化程序集。创建 AppDomain、JITing 所有方法、解析配置文件等等都需要相当长的时间。

    您实际上并没有说 多少“10 次”实际上是,但在我的经验中,第一个请求的 10-15 秒并不罕见。

    如果您运行的是 Windows Server 2008,您可以尝试Application Warm-Up,它基本上只是一个在 IIS 工作进程被回收或服务器重新启动等时自动发出页面请求的工具。但是自己编写这样的脚本并不难,真的,正如code4life所说(应用程序预热具有使其工作得比“手动”更好一些的功能,但手动方式在我的经验中仍然非常有效)。

    【讨论】:

    • 是的,第一个请求大约需要 6 或 7 秒。但是,我很惊讶添加序列化程序集没有任何效果。此时,应用程序预热不是一个选项。感谢回复
    【解决方案2】:

    我认为您真正的问题与每天重新加载网络服务有关。是否可以安装一个重新启动后批处理脚本,该脚本首次调用服务器的 Web 服务?这是我们在我之前的一份合同中必须做的事情,它确实起到了重要作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2023-04-05
      • 1970-01-01
      • 2021-09-11
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多