我有一个Web服务,我想从我的一个asp.net类调用。 我可以成功调用我的Web服务。但现在我需要异步调用此服务。我需要调用它而不是等待服务完成执行。我不需要处理来自服务的响应,也不需要验证服务是否成功执行。我想要的只是能够打电话给服务,并可以自由地做其他事情。
答案 0 :(得分:4)
您需要异步使用Web服务。 转到并检查
AddServiceReference -> Advance -> generate asynchronous operations.
在此之后,每个方法都可以使用异步回调事件 假设您在服务中使用ABC方法时将同步使用这些方法,这些方法将在您的应用程序中使用
1>ABC (fire and wait for output)
2>ABCAsync(fire and forget)
3>ABC callback event(get fired <if ABCAsync is called> when data available in your application)
答案 1 :(得分:3)
实现“即发即弃”方法的一种方法是在IsOneWay
属性上使用OperationContract
属性,如下所示:
[OperationContract(IsOneWay=true)]
public void SomeMethod(string someValue);
设置为true时,操作不会返回消息。请注意,标记为单向的方法不能包含返回类型或ref
或out
参数(这是有意义的)。它也不应该与异步调用相混淆,因为它不是同一个东西(事实上,如果需要一段时间才能获得连接,单向调用可以在客户端上阻塞)。
有关详细信息,请参阅OperationContractAttribute.IsOneWay Property。
答案 2 :(得分:-1)