Проблема производительности конструкции канала WCF - PullRequest
1 голос
/ 22 сентября 2011

У меня странная ситуация, и я надеюсь, что кто-то испытал этот сценарий и может мне помочь.

У меня есть служба WCF, размещенная на IIS.От одного клиента (Windows XP Pro SP3) простой вызов занимает меньше секунды, но от другого клиента (также win xp pro sp3, но каким-то образом должен быть с другим конфигом), для первого вызова в приложении требуется 7 секунд.

То, что я делаю в приложении, это создание службы и выполнение простого вызова.Я попытался сделать диагностику.Когда я просматриваю журнал обслуживания клиентов, я вижу, что создание канала занимает около 2 секунд.Открытие клиентской базы занимает около 2 секунд, а запуск метода в службе - около 2 секунд.

Затем я закрываю службу.

Если я сделаю вызов снова, это займет 0 секунд, какна другой машине.Если я закрою приложение, первый запуск снова займет 7 секунд.

Из-за медленных вызовов ПК к службе ASMX на том же IIS всегда выполняется быстро, но я хочу использовать WCF.

Iиспользовать базовую проверку подлинности IIS, и я добавляю учетные данные времени выполнения с кодом ниже.Но я делаю то же самое на обоих компьютерах, так что ... Я должен как-то настраивать.

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>

Я много гуглил наи попробовали разные настройки, связанные с прокси и т. д., но без какого-либо реального прорыва.

Я надеюсь, что кто-то может дать мне подсказку в правильном направлении.

Спасибо!

Мортен, Дания

...