3

我已经使用 basicHttpBinding 绑定实现了一个简单的独立 WCF 服务。我创建了一个客户端并使用添加服务引用生成了客户端存根代码。客户端第一次调用服务时,服务器至少需要 15 秒才能看到请求。从阅读似乎是由于序列化代码的 JIT 生成。我尝试使用这里描述的预生成代码

svcutil.exe /t:xmlSerializer <assemblyPath>

在我编译的客户端 exe 上,但代码但出现以下错误: 程序集中没有服务合同对XmlSerializerOperationBehavior.

4

1 回答 1

0

首先,您应该注意,如果您使用预编译代码,您将失去性能,因为预编译代码不使用任何特定于平台的代码,它只是编译“正常”代码。

另一方面,JIT 在第一次编译时确实会受到一些性能影响(对于创建代理类),但在进一步的请求中它确实工作得更好。

所以我建议你检查你的服务和客户端的初始化代码——可能是,你可以优化它(15秒意味着你从各种程序集中创建了很多对象)。

尝试使用一些Lazy 类

于 2011-09-05T09:03:47.920 回答