2015-06-09 2 views
3

При использовании WCF SOAP Services визуальная студия автоматически создает синхронные и асинхронные версии методов на сервере в клиентском приложении клиента. Например, этот метод не Асинхр на сервере:WCF (SOAP): операции асинхронного обслуживания

public Data GetData(){ 
return data; 
} 

может быть использован как

var i = client.GetData(); 

или

var i = await client.GetDataAsync(); 

Теперь мой вопрос состоит в том, что было бы полезно, чтобы сделать использование методов работы асинхронной службы на стороне сервера вообще? Я имею в виду, что при использовании методов сервисного контракта async, будет ли какое-либо повышение производительности на стороне сервера вообще или нет?

+1

IINM, в вашем примере использование 'async' для использования внешней службы принесет пользу« вам », потребительскому/клиентскому приложению. – EdSF

+0

@EdSF: Конечно, но я имею в виду, будет ли какая-либо польза для использования асинхронных методов на стороне сервера? – Arrrr

+0

Учитывая вышеизложенное (нет асинхронизации на сервере)? Тогда у него не будет никаких асинхронных «преимуществ» ... (если я не понимаю ваш вопрос). Он будет выполнять «точно так же, как обычно выполняет обработку запросов синхронно» (запрашивает ли запрос клиент/s с помощью async или нет). – EdSF

ответ

2

... если внедрение методов договора услуг, как в асинхронном, будет ли любое повышение производительности на стороне сервера вообще или нет?

На стороне сервера не будет никакой разницы. Операции асинхронной службы на клиенте - это чисто клиентская реализация. Входящие вызовы будут неотличимы от службы.

вы думаете, реализация IDisposable для службы будет благотворного или не

Если вы говорите об услуге коде на стороне, то вы будете либо используя ServiceHost контейнер для запуска ваш сервис, который уже реализует IDisposable, или он будет динамически загружаться из IIS или WAS, и в этом случае у вас нет контроля над правильным зерном для реализации IDisposable.

Если во внутреннем коде вашего сервиса используются неуправляемые ресурсы в процессе выполнения, вам необходимо управлять удалением этих вещей, но это .net 101 и имеет значение для всего, что не просто WCF.

+0

Том, еще один вопрос, вы считаете, что реализация IDisposable для сервиса будет полезна или нет? – Arrrr

+0

@Arrrr - это странный вопрос - см. Редактирование моего ответа –

Смежные вопросы