Служба WCF должна вызывать асинхронный - PullRequest
0 голосов
/ 20 сентября 2019

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

wsClient.GetCustomerGeoCodeCompleted += (sender, args) => client_GetCustomerGeoCodeCompleted(sender, args);
wsClient.GetCustomerGeoCodeAsync(GetCustomerGeoCodeRequest, lintRequestCount.ToString());

это мой делегат

public void client_GetCustomerGeoCodeCompleted(object sender, wsIntegrationService.GetCustomerGeoCodeCompletedEventArgs e)
{
    try
    {
        if (e.Error == null)
        {
           // lintResponseCount += 1;
            WriteLog(strResponseLogpath, e.UserState + " - SUCCESS -  Get Customer Geo - " + "Record Received" + e.Result.Count().ToString()) + DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss:FFF"));

        }
        else
        {
            WriteLog(logpath, "ERROR -> : Get Customer Geo " + e.Error.Message.ToString());
        }
    }
    catch (Exception ex)
    {
        WriteLog(logpath, "ERROR -> : Get Customer Geo " + ex.Message.ToString());
    }
}

любые предложения о том, как я могу получить отдано, как только вызов службы закончится для этого запроса.

1 Ответ

0 голосов
/ 20 сентября 2019

я добавил, ждет в вызове и работает по мере необходимости

await Task.Run(() => wsClient.GetSalesOrderV1Async(GetSalesOrderRequest, lintRequestCount.ToString() +"-"+  dr["TenantCode"].ToString()));

дайте мне знать, если какой-либо другой подход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...