如何从ASP.Net以“一视不发”的方式调用Web服务

时间:2014-01-29 20:26:21

标签: c# asp.net wcf web-services asynchronous

我有一个Web服务,我想从我的一个asp.net类调用。 我可以成功调用我的Web服务。但现在我需要异步调用此服务。我需要调用它而不是等待服务完成执行。我不需要处理来自服务的响应,也不需要验证服务是否成功执行。我想要的只是能够打电话给服务,并可以自由地做其他事情。

3 个答案:

答案 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时,操作不会返回消息。请注意,标记为单向的方法不能包含返回类型或refout参数(这是有意义的)。它也不应该与异步调用相混淆,因为它不是同一个东西(事实上,如果需要一段时间才能获得连接,单向调用可以在客户端上阻塞)。

有关详细信息,请参阅OperationContractAttribute.IsOneWay Property

答案 2 :(得分:-1)

你试过这个:?

http://msdn.microsoft.com/en-us/library/bb885132(v=vs.110).aspx

这是另一种方法,检查出来。

相关问题