WCF Channel构造性能问题

时间:2011-09-22 08:46:48

标签: wcf performance windows-xp client instantiation

我有一个奇怪的情况,我希望有人经历过这种情况,并且可以帮助我。

我在IIS上托管了WCF服务。 从一个客户端(Windows XP专业版SP3),一个简单的调用只需不到一秒钟,但从另一个客户端(也赢得xp pro sp3,但必须以某种方式与另一个配置),在应用程序中进行第一次调用需要7秒

我在应用中做的是实现服务,并进行简单的通话。 我试过做诊断。 当我查看客户端服务日志时,我可以看到通道的构造大约需要2秒钟。 Open Client base大约需要2秒钟,并且在服务中运行该方法大约需要2秒钟。

然后我关闭了服务。

如果我再次拨打电话,则需要0秒,就像在另一台机器上一样。 如果我关闭应用程序,第一次运行需要7秒钟。

从缓慢的PC调用到同一IIS上的ASMX服务总是运行得很快,但我想使用WCF。

我使用基本的IIS身份验证,我使用下面的代码添加凭据运行时。但我在两台PC上做同样的事情,所以......我必须以某种方式进行配置。

MyServiceClient client = new MyServiceClient();

ClientCredentials loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = "theuser";
loginCredentials.UserName.Password = "thepass";

var defaultCredentials = client.Endpoint.Behaviors.Find<ClientCredentials>();
client.Endpoint.Behaviors.Remove(defaultCredentials); //remove default ones
client.Endpoint.Behaviors.Add(loginCredentials); //add required ones

client.Endpoint.Address = new System.ServiceModel.EndpointAddress(GetSVCUrl());
client.InnerChannel.OperationTimeout = new TimeSpan(0, 0, 60);
client.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 0, 60);

配置设置为     <security mode="TransportCredentialsOnly"> <transport clientCredentialType="Basic" realm="" /> </security>

我在这个问题上搜索了很多内容,并尝试了与代理等相关的不同配置设置,但没有任何真正的突破。

我希望有人能给我一个正确方向的暗示。

谢谢!

丹麦莫滕

0 个答案:

没有答案