我已经使用basicHttpBinding绑定实现了一个简单的独立WCF服务。 我创建了一个客户端,并使用“添加服务引用”生成了客户端存根代码。 客户端第一次调用服务时,在服务器看到请求之前至少需要15秒。从阅读this开始,似乎是由于JIT生成了序列化代码。 我尝试使用
按照here所述预生成代码svcutil.exe /t:xmlSerializer <assemblyPath>
在我编译的客户端exe上但代码却出现了以下错误:程序集中的服务合同没有XmlSerializerOperationBehavior
的操作。
答案 0 :(得分:0)
首先,您应该注意,如果您使用预编译代码,您将失去性能,因为预编译代码不使用任何特定于平台的代码,它只是编译“正常”代码。
另一方面,JIT在第一次编译时确实获得了一些性能(对于代理类创建),但它对于进一步的请求确实更好。
因此,我建议您检查服务的初始化代码和客户端 - 可能是,您可以对其进行优化(15秒意味着您要从各种程序集创建大量对象)。 / p>
尝试使用一些Lazy classes