首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF服务客户端的实例化引发有关IsOneWay操作的异常。

WCF服务客户端的实例化引发有关IsOneWay操作的异常。
EN

Stack Overflow用户
提问于 2013-07-26 16:46:26
回答 1查看 1.6K关注 0票数 1

我有两个托管在IIS中的WCF服务在服务器上运行: Ogre (C#)和Troll (VB.Net)。(是的,这是他们的真名。)在这个过程中,我在Troll服务中调用一个web方法。Troll反过来调用Ogre作为支持函数。

当Troll试图实例化Ogre服务客户端时:

代码语言:javascript
复制
Dim ogre As New OgreService.OgreClient  

引发异常。这一例外是

代码语言:javascript
复制
Operations marked with IsOneWay=true must not declare output parameters, by-reference parameters or return values.  

现在,食人魔确实有一些方法被定义为一种方式。但是,它们都返回void,没有一个具有输出参数。有些人确实接受一个对象(在数据契约中定义)作为参数。还有其他几个程序可以毫无问题地调用食人魔。此外,如果我在我的开发系统上运行Troll,在Visual中,它在服务器上调用ogre没有问题。我还可以使用WCF客户端从我的开发机器调用服务器上的ogre,没有问题。

我知道这一定是一个配置问题,但我不能为我的生活弄清楚它是什么。IIS托管的WCF服务在同一台计算机上调用另一个IIS承载的WCF服务是否存在问题?

我甚至不确定我能提供哪些数据可能有帮助,因为这只是一个正在经历问题的配置。任何关于可能发生的事情的想法都会受到欢迎。

谢谢。

事实证明,这是Visual生成的服务代理的问题。在配置服务引用时,我意外地检查了“允许生成异步操作”。选择了生成基于任务的操作的选项。

这导致使用返回值的单向装饰定义方法。

这就是造成问题的原因。因为我不需要异步操作,所以我不检查这个选项,问题就解决了。

它确实引发了其他问题,比如“为什么它在我的开发机器上运行时没有失败?”以及“为什么自动生成的客户端生成无效的代码?”但这是另一次讨论。

EN

回答 1

Stack Overflow用户

发布于 2016-03-28 17:58:59

我遇到了同样的问题,下面是对我有用的东西。在开发框上一切正常,但是有关IsOneWay的例外是在deployment上。将.Net框架的4.5.1升级到部署环境中,修复了它。

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

https://stackoverflow.com/questions/17886766

复制
相关文章

相似问题

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