我们正在开发一个电子商务项目,其中从RESTfull webservices获取数据。我们正在使用async-await
编程模型。
使用ChannelFactory
类正在请求某些服务,因为我们不能使用ChannelFactory进行异步方法,也不提供web服务,所以我们使用了不同的方法,如下所示。
var customerLocationTask = Task.Run(() => new OrderService().GetCustomerLocation(customerId));
var customerCountryTask = this.CmsCustomerCountryCode(customerId);
await Task.WhenAll(customerLocationTask, customerCountryTask);
在这里,我们以不自然的异步方式请求2个Web服务,并使用ChannelFactory
以同步方式调用我们的Web服务。 CmsCustomerCountryCode
的代码是:
public async Task<string> CmsCustomerCountryCode(string customerId)
{
OrderService orderService = new OrderService();
Customer customer = await Task.Run(() => orderService.GetCustomer(customerId, ResponseFormat.json));
return customer.BillToAddress.Country;
}
此处的问题有时我们会在Endpointnotfoundexception
方法中获得CmsCustomerCountryCode
。这是网络问题还是我们的异步方法不正确?