C# 基于任务的异步模式不支持System.IProgress

C# 基于任务的异步模式不支持System.IProgress,c#,async-await,task,autofac,iprogress,C#,Async Await,Task,Autofac,Iprogress,我有一个WCF服务,IMyService。在此服务中,有一个操作使用System.IProgress public async Task MyOperation(int id, IProgress<long> progress) public异步任务MyOperation(int-id,IProgress-progress) 我使用Autofac为IMyService服务创建了一个客户端 builder.Register(c => c.Resolve<ChannelF

我有一个WCF服务,IMyService。在此服务中,有一个操作使用System.IProgress

public async Task MyOperation(int id, IProgress<long> progress)
public异步任务MyOperation(int-id,IProgress-progress)
我使用Autofac为IMyService服务创建了一个客户端

builder.Register(c => c.Resolve<ChannelFactory<IMyService>>().CreateChannelWithIssuedToken(xmlToken)).As<IMyService>()
builder.Register(c=>c.Resolve().CreateChannelWithIssuedToken(xmlToken)).As()
现在,我收到这个错误:

[NotSupportedException: The use of 'System.IProgress`1[System.Int32]' on the task-based asynchronous method is not supported.]          
 System.ServiceModel.Description.TaskOperationDescriptionValidator.EnsureParametersAreSupported(MethodInfo method) +5776097
 System.ServiceModel.Description.TaskOperationDescriptionValidator.Validate(OperationDescription operationDescription, Boolean isForService) +16119179
System.ServiceModel.Description.ServiceEndpoint.Validate(Boolean runOperationValidators, Boolean isForService) +546
System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose) +74
System.ServiceModel.ChannelFactory.OnOpening() +30
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +261
System.ServiceModel.ChannelFactory.EnsureOpened() +119
System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) +161
System.ServiceModel.ChannelFactory`1.CreateChannelWithIssuedToken(SecurityToken issuedToken) +39
TSANDC.Mdb.UI.Web.<>c__DisplayClass10.<RegisterServiceEndpoint>b__f(IComponentContext c) in c:\Projects\MyProject\App_Start\AutofacConfig.cs:148
Autofac.Builder.<>c__DisplayClass1`1.<ForDelegate>b__0(IComponentContext c, IEnumerable`1 p) +15
    Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) +32
Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters) +86
Autofac.Core.Resolving.InstanceLookup.Execute() +62
Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters) +170
Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate() +124
Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) +272
Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters) +86
Autofac.Core.Resolving.InstanceLookup.Execute() +62
Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters) +170
Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters) +50
[不支持例外:不支持在基于任务的异步方法上使用'System.IProgress`1[System.Int32]'
System.ServiceModel.Description.TaskOperationDescriptionValidator.EnsureParameters受支持(MethodInfo方法)+5776097
System.ServiceModel.Description.TaskOperationDescriptionValidator.Validate(OperationDescription OperationDescription,布尔值isForService)+16119179
System.ServiceModel.Description.ServiceEndpoint.Validate(布尔runOperationValidators,布尔isForService)+546
System.ServiceModel.Channel.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint ServiceEndpoint,布尔值useActiveAutoClose)+74
System.ServiceModel.ChannelFactory.OnOpen()+30
System.ServiceModel.Channel.CommunicationObject.Open(TimeSpan超时)+261
System.ServiceModel.ChannelFactory.com已重新打开()+119
System.ServiceModel.ChannelFactory`1.CreateChannel(端点地址,Uri via)+161
System.ServiceModel.ChannelFactory`1.CreateChannelWithIssuedToken(SecurityToken issuedToken)+39
TSANDC.Mdb.UI.Web.c\u在c:\Projects\MyProject\App\u Start\AutofacConfig.cs:148中显示Class10.b\u f(IComponentContext c)
Autofac.Builder.c_uudisplayClass1`1.b_u0(IComponentContext c,IEnumerable`1p)+15
Autofac.Core.Activators.DelegateActivator.ActivateInstance(IComponentContext,IEnumerable`1参数)+32
Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1参数)+86
Autofac.Core.Resolving.InstanceLookup.Execute()+62
Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope,IComponentRegistration,IEnumerable`1参数)+170
Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()+124
Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext上下文,IEnumerable`1参数)+272
Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1参数)+86
Autofac.Core.Resolving.InstanceLookup.Execute()+62
Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope,IComponentRegistration,IEnumerable`1参数)+170
Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration,IEnumerable`1参数)+50

错误是关于基于任务的异步模式不支持IProgress。这似乎不对,有人能帮忙吗。

IProgress
用于进程内通信,而不是internet通信。作为WCF服务调用是不明智的;协议不支持这种类型的通信。
IProgress
用于进程内通信,而不是internet通信。作为WCF服务调用是不明智的;该协议不支持这种类型的通信。