问题标签 [wcf-proxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf-proxy - 处理 WCF 代理空返回问题
我有一个连接到第三方 Web 服务的 WCF 客户端代理。除了功能之外,代理几乎可以正常工作。
此功能与 ASMX 代理一起工作得很好。
我添加了服务跟踪日志记录,可以看到服务返回的响应。只有代理返回 null。
所以现在我确定代理有问题。
从这里到哪里?
解决方案 我发现了问题。WCF 没有 ASMX 代理那么宽容。服务 WSDL 指定返回的对象称为“数据”,而实际传回的 xml 称为“结果”
所以那是一场伟大的追逐!我想我在这个问题上浪费了 4 个小时!
static - 使用共享静态 WCF 代理客户端有哪些陷阱?
我正在考虑将共享(读取静态)WCF 代理客户端用于高吞吐量应用程序。我相信这样做可以提高性能,但我还没有对此进行基准测试。
这个想法有一些严重的缺陷吗?
根据我的研究,我可以看到存在处理故障状态的问题,尚不清楚该状态对其他待处理请求的影响是什么。
有没有人有从故障状态恢复 WCF 代理的经验?
提前致谢!
unity-container - 统一处置对象
有没有办法让 Unity 将属性注入的对象作为 Teardown 的一部分进行处理?
背景是我正在开发一个使用 ASP.NET MVC 2、Unity 和 WCF 的应用程序。我们编写了自己的 MVC 控制器工厂,它使用统一来实例化控制器,并使用控制器公共属性上的 [Dependency] 属性注入 WCF 代理。在页面生命周期结束时,会调用控制器工厂的 ReleaseController 方法,我们调用 IUnityContainer.Teardown(theMvcController)。此时控制器已按预期处理,但我还需要处理注入的 wcf 代理。(实际上我需要对它们调用 Close 和/或 Abort 而不是 Dispose 但这是后来的问题。)
我当然可以覆盖控制器的 Dispose 方法并清理那里的代理,但我不希望控制器必须知道注入接口的生命周期,甚至它们引用 WCF 代理。
如果我需要自己为此编写代码 - 最好的扩展点是什么?我会很感激任何指针。
wcf - 在不同的 Web 服务代理类之间共享类
我正在使用basicHttpBinding在 .net 3.5 框架中编写 wcf 服务,并将其托管在 IIS 6.0(Windows 2003)中。
我有 3 种不同的服务(AuthenticationSerice、Dataserviceservice、ReportingService),这些服务之间共享的类很少。
我的问题是当我为三个 wcf/web 服务生成代理类时,它会生成三个不同的代理类(公共类不跨代理类共享)。
是否可以为所有三个具有共享类类型的 wcf/web 服务生成代理类?
注意:客户端是在.net 2.0 框架下开发的。所以我需要使用 WSDL 来生成代理类。
nRk
wcf - Silverlight 3 中 WCF 服务客户端代理的正确生命周期是什么?
我在网上找到了对我的问题的混合答案。详细说明这个问题:
- 我应该为每个异步调用实例化一次服务客户端代理,还是每个 Silverlight 应用程序一次?
- 我是否应该显式关闭服务客户端代理(就像在我的 ASP.NET MVC 应用程序中同步调用 WCF 服务一样)?
我发现很多博主和论坛海报相互矛盾。谁能指出任何明确的来源或证据来一劳永逸地回答这个问题?
windows-services - Windows 服务启动然后停止
我有一个从已故开发人员那里继承的 Windows 服务。Windows 服务在 QA 环境中运行良好。当我安装该服务并在本地运行它时,我收到此错误:
无法启动服务。System.InvalidOperationException:请求的性能计数器不是自定义计数器,它必须初始化为只读。
这是代码:
wcf - 如果我不关闭 WCF/ASMX 代理会有多糟糕?
所以有人(好吧是我)没有意识到你需要在使用 WCF 代理后关闭它们。
这有多糟糕?会造成什么样的问题。
是否只是因为垃圾收集而延迟关闭资源 - 还是我真的应该担心过早的应用程序池回收之类的事情?
在这个问题上,我实际上拥有比 WCF 代理更多的 ASMX - 所以同样的问题也适用于 ASMX。
显然,既然我知道了这一点,我将逐步修复它,但希望能提供关于这到底有多糟糕的意见?
wcf - 如何防止在 WCF 客户端中生成“指定”属性?
我有两个使用 VS2008 构建的 .NET 3.5 WCF 服务。
我在 Silverlight 中有两个 WCF 客户端来使用这些服务。客户端是使用“添加服务参考”生成的。我正在使用 Silverlight 4。
其中一个代理是使用Specified
每个属性的属性生成的。这是我的服务方法的“消息输入”类:
现在我的其他服务(仍然使用 Silverlight 客户端)不会生成Specified
属性。
现在我不关心“良好 SOA 的原则”。我只是想摆脱这些该死的属性,因为在我正在做的事情的背景下,我绝对讨厌它们。
这两种服务之间肯定存在一些差异——但我不想完全拆开它们来找出差异。
之前的一个类似问题的答案是“你不能这样做”——这绝对不是真的,因为我有——我只是不知道我做了什么不同的事情。
编辑:我现在的情况是,我将 Silverlight 4 代理重新生成到我的 3.5 WCF 服务(都在同一台 localhost 机器上),有时我得到“指定”属性,有时我没有。我不再认为(正如我最初怀疑的那样)这仅仅是由于某些端点配置或服务级别 [属性]。消息本身中有某些触发器会导致生成(或不生成)Specified。可能涉及许多因素,也可能非常简单。
c# - WCF代理接口中未生成异步方法
我想使用这些<operation>Asnyc
方法而不是Begin<operation>/End<operation>
我的 WCF 服务客户端代理上的方法,因为我正在更新 WPF 控件并且需要确保它们是从 UI 线程更新的。我可以使用 Dispatcher 类为 UI 线程排队项目,但这不是我要问的......
我已经配置了服务引用来生成异步操作,但它只生成代理实现中的方法,而不是它的接口。该接口仅包含同步和Begin<operation>/End<operation>
方法。
为什么这些方法不在接口中生成,有没有办法做到这一点,还是我必须创建派生接口才能手动添加它们?
.net - 将 Web 客户端迁移到 WCF;WCF客户端序列化方法的参数名
我正在努力从 webservice/webclient 架构迁移到 WCF 架构。该对象非常复杂,有很多嵌套的 xsd 和不同的命名空间。通过将 Web 引用添加到具有 30 多个 Web 方法的原始 wsdl 并使用 xsd.exe 生成缺少的 SOAPFault 对象来生成代理类。我的试点 WCF 服务仅包含 1 个与原始方法之一的确切语法匹配的 web 方法:1 个对象作为参数,返回 1 个其他对象作为结果值。我使用这些代理类创建了一个 WCF 接口,使用属性:XMLSerializerFormat
并ServiceContract
在接口OperationContract
上,使用原始 wsdl 指定的一种方法Action
,ReplyAction
,都具有适当的命名空间。我使用 SoapUI 创建传入的客户端消息;我从原始 WSDL 文件生成了一个项目(导致 SoapUI 项目有 30 多个方法),并在一个实现的 WebMethod 上创建了一个新请求,将 URL 更改为我的 wcf Web 服务并发送消息。由于 中指定的 (Reply-)Action OperationContractAttribute
,消息实际上被接收并正确反序列化为对象。
为了做到这一点(40 小时的谷歌搜索),很多挫折使我使用了一个自定义端点,在该端点中删除了 WCF“包装标签”,更正了嵌套类型的命名空间,并且生成的 wsdl 得到了展平(为了更好与其他工具的兼容性,然后是 MS VisualStudio)。
接口代码是这样的:
当我在代码中使用 Web 客户端发送消息时,一切正常。我的问题是,当我使用 WCF 客户端时。我ChannelFactory<IOntvangAsynchroon>
用来发信息。但是生成的 xml 看起来不同:它包含方法的参数名!我花了很多时间来解决这个问题,但这是发生的事情:
正确的 xml(剥离的肥皂信封):
错误的xml:
注意zakLk011
元素?它是我界面中方法的参数名称!所以现在是zakLk011
,但是当我的参数名称是时zakLk01
,xml 似乎包含上面标记的一些神奇副本,但没有命名空间。当然,你可以想象我在发现它是参数名之前对发生的事情发疯了!
我现在实际上已经创建了一个 WCF 服务,我无法再使用 WCF 客户端发送消息。为清楚起见:该方法确实在我的 Web 服务上使用 WCF 客户端调用,但参数对象为空。因为我使用自定义端点来记录传入的 xml,所以我可以看到消息接收良好,但语法错误!
WCF 客户端代码:
我没有使用生成的客户端,我只是像以前那样引用 Web 服务(共享库)。
编辑:生成服务参考时,它会生成重复的类(不知道为什么..)。但是,当删除这些重复项时,客户端会使用正确的 xml 发送消息。但是我的架构需要共享库,所以这对我没有帮助。
谁能帮帮我吗?我无法在此搜索任何内容...