问题标签 [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.

0 投票
1 回答
4743 浏览

wcf-proxy - 处理 WCF 代理空返回问题

我有一个连接到第三方 Web 服务的 WCF 客户端代理。除了功能之外,代理几乎可以正常工作。

此功能与 ASMX 代理一起工作得很好。

我添加了服务跟踪日志记录,可以看到服务返回的响应。只有代理返回 null。

所以现在我确定代理有问题。

从这里到哪里?

解决方案 我发现了问题。WCF 没有 ASMX 代理那么宽容。服务 WSDL 指定返回的对象称为“数据”,而实际传回的 xml 称为“结果”

所以那是一场伟大的追逐!我想我在这个问题上浪费了 4 个小时!

0 投票
2 回答
1685 浏览

static - 使用共享静态 WCF 代理客户端有哪些陷阱?

我正在考虑将共享(读取静态)WCF 代理客户端用于高吞吐量应用程序。我相信这样做可以提高性能,但我还没有对此进行基准测试。

这个想法有一些严重的缺陷吗?

根据我的研究,我可以看到存在处理故障状态的问题,尚不清楚该状态对其他待处理请求的影响是什么。

有没有人有从故障状态恢复 WCF 代理的经验?

提前致谢!

0 投票
3 回答
4527 浏览

unity-container - 统一处置对象

有没有办法让 Unity 将属性注入的对象作为 Teardown 的一部分进行处理?

背景是我正在开发一个使用 ASP.NET MVC 2、Unity 和 WCF 的应用程序。我们编写了自己的 MVC 控制器工厂,它使用统一来实例化控制器,并使用控制器公共属性上的 [Dependency] 属性注入 WCF 代理。在页面生命周期结束时,会调用控制器工厂的 ReleaseController 方法,我们调用 IUnityContainer.Teardown(theMvcController)。此时控制器已按预期处理,但我还需要处理注入的 wcf 代理。(实际上我需要对它们调用 Close 和/或 Abort 而不是 Dispose 但这是后来的问题。)

我当然可以覆盖控制器的 Dispose 方法并清理那里的代理,但我不希望控制器必须知道注入接口的生命周期,甚至它们引用 WCF 代理。

如果我需要自己为此编写代码 - 最好的扩展点是什么?我会很感激任何指针。

0 投票
1 回答
1045 浏览

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

0 投票
3 回答
3518 浏览

wcf - Silverlight 3 中 WCF 服务客户端代理的正确生命周期是什么?

我在网上找到了对我的问题的混合答案。详细说明这个问题:

  1. 我应该为每个异步调用实例化一次服务客户端代理,还是每个 Silverlight 应用程序一次?
  2. 我是否应该显式关闭服务客户端代理(就像在我的 ASP.NET MVC 应用程序中同步调用 WCF 服务一样)?

我发现很多博主和论坛海报相互矛盾。谁能指出任何明确的来源或证据来一劳永逸地回答这个问题?

0 投票
2 回答
1214 浏览

windows-services - Windows 服务启动然后停止

我有一个从已故开发人员那里继承的 Windows 服务。Windows 服务在 QA 环境中运行良好。当我安装该服务并在本地运行它时,我收到此错误:

无法启动服务。System.InvalidOperationException:请求的性能计数器不是自定义计数器,它必须初始化为只读。

这是代码:

0 投票
3 回答
977 浏览

wcf - 如果我不关闭 WCF/ASMX 代理会有多糟糕?

所以有人(好吧是我)没有意识到你需要在使用 WCF 代理后关闭它们。

这有多糟糕?会造成什么样的问题。

是否只是因为垃圾收集而延迟关闭资源 - 还是我真的应该担心过早的应用程序池回收之类的事情?

在这个问题上,我实际上拥有比 WCF 代理更多的 ASMX - 所以同样的问题也适用于 ASMX。

显然,既然我知道了这一点,我将逐步修复它,但希望能提供关于这到底有多糟糕的意见?

0 投票
5 回答
9738 浏览

wcf - 如何防止在 WCF 客户端中生成“指定”属性?

我有两个使用 VS2008 构建的 .NET 3.5 WCF 服务。

我在 Silverlight 中有两个 WCF 客户端来使用这些服务。客户端是使用“添加服务参考”生成的。我正在使用 Silverlight 4。

其中一个代理是使用Specified每个属性的属性生成的。这是我的服务方法的“消息输入”类:

现在我的其他服务(仍然使用 Silverlight 客户端)不会生成Specified属性。

现在我不关心“良好 SOA 的原则”。我只是想摆脱这些该死的属性,因为在我正在做的事情的背景下,我绝对讨厌它们。

这两种服务之间肯定存在一些差异——但我不想完全拆开它们来找出差异。

之前的一个类似问题的答案是“你不能这样做”——这绝对不是真的,因为我有——我只是不知道我做了什么不同的事情。

编辑:我现在的情况是,我将 Silverlight 4 代理重新生成到我的 3.5 WCF 服务(都在同一台 localhost 机器上),有时我得到“指定”属性,有时我没有。我不再认为(正如我最初怀疑的那样)这仅仅是由于某些端点配置或服务级别 [属性]。消息本身中有某些触发器会导致生成(或不生成)Specified。可能涉及许多因素,也可能非常简单。

0 投票
2 回答
1263 浏览

c# - WCF代理接口中未生成异步方法

我想使用这些<operation>Asnyc方法而不是Begin<operation>/End<operation>我的 WCF 服务客户端代理上的方法,因为我正在更新 WPF 控件并且需要确保它们是从 UI 线程更新的。我可以使用 Dispatcher 类为 UI 线程排队项目,但这不是我要问的......

我已经配置了服务引用来生成异步操作,但它只生成代理实现中的方法,而不是它的接口。该接口仅包含同步和Begin<operation>/End<operation>方法。

为什么这些方法不在接口中生成,有没有办法做到这一点,还是我必须创建派生接口才能手动添加它们?

0 投票
2 回答
1531 浏览

.net - 将 Web 客户端迁移到 WCF;WCF客户端序列化方法的参数名

我正在努力从 webservice/webclient 架构迁移到 WCF 架构。该对象非常复杂,有很多嵌套的 xsd 和不同的命名空间。通过将 Web 引用添加到具有 30 多个 Web 方法的原始 wsdl 并使用 xsd.exe 生成缺少的 SOAPFault 对象来生成代理类。我的试点 WCF 服务仅包含 1 个与原始方法之一的确切语法匹配的 web 方法:1 个对象作为参数,返回 1 个其他对象作为结果值。我使用这些代理类创建了一个 WCF 接口,使用属性:XMLSerializerFormatServiceContract在接口OperationContract上,使用原始 wsdl 指定的一种方法ActionReplyAction,都具有适当的命名空间。我使用 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 发送消息。但是我的架构需要共享库,所以这对我没有帮助。

谁能帮帮我吗?我无法在此搜索任何内容...