加快WCF客户端实例化?

时间:2014-12-02 21:19:04

标签: vb.net wcf wcf-client channelfactory wcf-proxy

假设我的WCF客户端接口被调用ISDK,而客户端对象本身被称为ISDKClient,由svcutil生成。

当我像这样实例化WCF客户端时:

Dim myClient As New ISDKClient

创建第一个客户端需要大约1.5秒,然后大约需要300毫秒。

如果我使用渠道工厂方法:

Dim myChannelFactory As New ChannelFactory(Of ISDK)(binding, endpoint)
Dim myChannel As ISDK = myChannelFactory.CreateChannel()

第一次通话需要1.5秒,但随后对CreateChannel的通话即将开始。问题是ISDK中的方法签名与ISDKClient下列出的方法签名不同。 ISDK具有请求/响应模式,而ISDKClient具有带参数的常规方法。

我可以控制svcutil生成代理文件的方式,以避免界面中的请求/响应方法签名模式吗? According to MSDN,方法签名应该匹配,即客户端应该直接引用所有调用的接口(但不是我的情况):

Public Function SampleMethod(ByVal msg As String) As String _
                                           Implements ISampleService.SampleMethod
  Return MyBase.Channel.SampleMethod(msg)
End Function 

如果没有,是否可以使用现有频道实例化WCF客户端?类似的东西:

Dim myClient As New ISDKClient(myChannel)

如果没有,是否还有其他方法可以提高我的应用程序中实例化新WCF客户端的性能?假设所有可用的是基于HTTP的WCF服务。

0 个答案:

没有答案
相关问题