ASMX在“生成序列化程序集”后仍然很慢

时间:2010-06-03 01:37:42

标签: asmx

此问题与:ASMX Web Service slow first request

有关

我继承了旧版ASMX服务的代理。基本上如上述状态所述,第一次呼叫性能实际上比后续呼叫慢10倍。我继续在包含代理的项目上打开“生成序列化程序集”。实际上生成了'序列化器'程序集。但是,我没有看到任何性能提升。除了确保'序列化程序'程序集在客户机的bin目录中之外,我还需要做其他事吗?在代理生成期间(wsdl.exe),我是否必须将代理“链接”到“序列化程序”程序集?我想我已经陷入了困境。 J桑德斯在哪里? :)

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

实际上,启动时间比创建序列化程序集要多得多。创建AppDomain,JITing所有方法,解析配置文件等等都需要花费很多时间。

你实际上并没有说实际上有多少“10次”,但根据我的经验,第一次请求的10-15秒并不罕见。

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