首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第三方web服务的WCF包装器-火和遗忘[OperationContract(IsOneWay = true)]

第三方web服务的WCF包装器-火和遗忘[OperationContract(IsOneWay = true)]
EN

Stack Overflow用户
提问于 2013-08-01 15:37:10
回答 1查看 1.2K关注 0票数 1

我已经创建了一个WCF服务,它是第三方web服务的包装器,添加了一些附加功能。我的问题是,在我的方法中,我想在第三方web服务中调用方法,但我不想等待这些方法的响应( web服务非常慢)。我尝试在我的方法上使用OperationContract(IsOneWay = true),但是得到了以下错误:

System.InvalidOperationException:在'MyService.MyService‘类型中的方法'MyMethod’上声明的OperationContractAttribute无效。OperationContractAttributes仅对在具有ServiceContractAttribute的类型中声明的方法有效。或者添加ServiceContractAttribute以键入‘MyService.MyService’,或者从方法'MyMethod‘中删除OperationContractAttribute。

在不调用第三方web服务的方法上使用OperationContract(IsOneWay = true)可以正常工作。有办法这样做吗?

这就是我所采取的方法:

代码语言:javascript
复制
public string MyPublicMethod()
{
     //do some stuff

    SomeParams sp = new SomeParams{p1 = "A", P2 = "B"};
    //don't want to wait for this
    MyMethod(sp);

   // do some more stuff

}

[OperationContract(IsOneWay = true)]    
private void MyMethod(SomeParams someParams)
{
     //3rd party service
     WebInterop wisc = new WebInterop();
     var results = (XmlElement)wisc.Search(someParams);

     // do some processing on results


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 15:49:59

你看过下面的内容吗?http://msdn.microsoft.com/en-us/library/ms731177.aspx#Y574

http://blogs.msdn.com/b/rjacobs/archive/2011/06/30/how-to-implement-a-wcf-asynchronous-service-operation-with-task-lt-t-gt.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17998499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档