问题标签 [wcf-callbacks]

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 回答
1746 浏览

c# - 双工回调始终是匿名的

我写了一个 WCF 双工服务和客户端。在我尝试在客户端实现中调用 .Demand() 之前,一切正常。该服务似乎匿名调用回调方法。我想我错过了如何正确配置服务。

用于创建 ServiceHost 的代码;

用于创建客户端的代码;

客户端实现:

如何配置以便 ServiceHost 使用 Windows 凭据正确调用回调?

0 投票
2 回答
17681 浏览

wcf - 如何从服务器向 WCF 中的所有客户端发送通知消息(可以说是广播)?

我想每秒从 net tcp WCF 服务向所有客户端发送通知消息,你可以说广播吗?

在有用的答案之后

我编写了以下方法,它将向所有连接的用户发送通知(心跳)

我担心调用回调方法,因为客户端可能会关闭他的应用程序,但我使用 try catch 处理它,减少超时,并并行发送广播,这样就足够了吗?

0 投票
1 回答
897 浏览

c# - WCF 在服务器上的服务之间进行通信

我正在使用 WCF 回调在公司 LAN 内实现警报类型系统。它有一个订阅机制等。我以教程为起点,但我将绑定更改为 NetTcpBinding 而不是 wsDualHttpBinding,并且我在 Windows 服务中自托管。

这工作得很好,但我有一个问题。我的大多数客户不需要回调。它们是各种桌面应用程序,只需要向服务器发送单向警报,该警报将传递给那些运行启用回调的“通知”应用程序并订阅该类型警报的客户端。

我可能在这里什么都不关心,但由于我的 WCF 服务实现了回调,所有客户端都需要实现一个回调对象,无论他们是否需要回调。如果客户端与不执行回调的服务通信的一种方式,这似乎是一个更整洁的解决方案。

所以......我在我的 WCF 服务中创建了另一个没有回调的端点。它只有一个简单的单向方法调用。那行得通,但我的问题是我不太清楚如何将收到的消息传递给启用回调的服务。

我的 Windows 服务有这样的东西:

在 sendonly 客户端调用的 SendingService 方法中,我认为我可以做到这一点:

SendMessage() 将回调消息发送给订阅的客户端。不幸的是,即使有客户端连接并等待回调,myNotifyHost.SingletonInstance 也始终为空。我想我误解了该属性的含义。NortifyService 有这些属性

有没有办法可以在这两个服务之间进行通信?我是否应该放弃这一点,只坚持一项服务,并在那些不需要它的客户端中实现无意义的回调类。在这一点上,这没什么大不了的。这更多地与我对WCF的理解有关。

谢谢

0 投票
2 回答
1243 浏览

c# - WCF中的回调?

我们如何在 WCF 中通过事件和委托流畅地使用 CallBack?

如果客户端给出任何请求或客户端的任何条件匹配,则服务会自动触发客户端给出的条件或请求的事件。

这怎么可能?

0 投票
2 回答
1609 浏览

wcf - 从 WCF 到 ASP.NET 的回调可能吗?

我有一个托管在 IIS 中的不同盒子中的 Web 服务和托管在 Windows 服务中的 WCF 服务,在不同的盒子中。(N 层方法)。这里,Web 服务是 WCF 服务的客户端。上传文件的请求来自 IIS 托管的 Web 服务,该 IIS 托管的 Web 服务作为回报调用 WCF 服务并进行实际上传。到现在为止还挺好。上传完成后,WCF 服务执行回调(我已将回调存储在字典中,并且我使用过 (InstanceContextMode=InstanceContextMode.PerSession, ConcurrencyMode=ConcurrencyMode.Multiple))。WCF 服务发送回调。在跟踪查看器中,看起来 ASP.NET 收到了回调,但浏览器中的上传页面(这是最终用户)永远冻结了。我正在使用 larsw 的 ChunkingChannel 绑定。

首先,正如约翰桑德斯在此链接中提到的那样,是否有可能实现上述情景:

“OperationContext.Current.GetCallbackChannel”实际上是做什么的?

谢谢您的帮助。

0 投票
1 回答
994 浏览

wcf - Unity 无法正确解析 WCF InstanceContext 实现

我正在尝试通过 Unity 2.0 为双工 WCF 服务设置客户端。为此,我想将 CallbackContract - IUpdateClient-的实现InstanceContext插入到 中,然后将其插入到我的服务代理中,在本例中是DuplexClientBase<IUpdateService>被调用的子类UpdateProxy

我遇到的问题是,当尝试使用存储在我的 Unity 容器中的代理来为客户端订阅来自服务的更新时,我收到以下异常:

提供给 ChannelFactory 的 InstanceContext 包含一个未实现 CallbackContractType '..Services..ServiceContracts.IUpdateClient' 的 UserObject。

我正在像这样访问代理:

鉴于我的 Unity 配置:

我希望当我解决 UpdateService 类时,请参见此处:

Unity 容器实例化一个InstanceContext(在配置中注册为“instanceContext”),并且在执行此操作时,它必须实例化注册为“updateClientImpl”的类型——事实上,它确实实现IUpdateClientimplementation了——并将其作为参数传递给 InstanceContext 的构造函数.

尽管如此,我还是收到了上述错误。

总结(又名“tl;dr 版本”):当 Unity 容器解析 InstanceContext 时,它似乎没有正确创建其实现。我不知道这是否是配置错误,或者我是否从根本上误解了 Unity 容器如何解析一组依赖类型。对此的任何指导都会有所帮助。

0 投票
1 回答
1243 浏览

javascript - 启用 Javascript 的 WCF 的错误处理?

是否有关于如何在暴露给 Javascript 的 WCF 服务中使用回调函数的文档?我有兴趣从 FailureCallback 获取有关我的方法未触发的原因的信息。

换句话说,我有以下 JavaScript 代码:

如何实现 wcfFailCallback?

0 投票
1 回答
3676 浏览

c# - WCF InstanceContext 错误

使用 WCF 的发布者和订阅者概念,发布者(服务器)在 WCF 服务中开发,订阅者(客户端)在 Windows 应用程序中开发。发布者创建代理并实施我得到了错误

“提供给 ChannelFactory 的 InstanceContext 包含一个未实现 CallbackContractType 'IRegistrationCallback' 的 UserObject。

服务器代码:

应用程序配置

代理代码

代理配置文件

客户代码

0 投票
1 回答
745 浏览

wcf - 具有可靠会话和回调的 WCF4 路由

我将首先解释我正在尝试做的事情,以及所涉及的环境/情况。

我正在使用已使用 .NET 4 实现的预先存在的 WCF 服务(作为 Windows 服务托管)。该服务利用 net.tcp 和可靠会话,以及对客户端应用程序的回调。WCF 服务和客户端应用程序在同一个网络域(我们将其称为 Domain_A)上运行,并且工作正常。

现存的:

我尝试实现的新功能是路由服务(通过 WCF 4)。将在 Domain_A 上运行的 WCF 服务的相同副本也将在 Domain_B 上运行。net.tcp 和 mex 端点所需的端口已在每个域上的两台计算机之间打开,我能够从相反的域成功访问每个服务的元数据。

我不确定的是,就路由服务请求而言,我应该采取什么路线(架构上)。客户端发出的某些请求只能由 Domain_A 上的服务回复,而其他请求只能由 Domain_B 上的服务回复。目标服务由(或可以)由与每个服务调用一起(从客户端)传递的参数确定。此外,客户端应用程序将仅从 Domain_A 运行。

所需功能:

我的第一个问题:就路由而言(过滤策略、端点/合同类型等),实现上述“所需功能”的最佳途径是什么?我是路由服务的新手,无法找到符合我要求的清晰/简洁的答案或示例。

第二个问题:除了过滤问题,谁能指出一个使用可靠会话和回调的 WCF4 路由服务的示例?除了快速提及 IDuplexSessionRouter 之外,我似乎找不到太多其他内容。如果 IDuplexSessionRouter 端点是要走的路,我一直找不到实现回调的示例。

在此先感谢您提供任何帮助或信息。如果我需要澄清以上任何内容,请告诉我。

0 投票
1 回答
534 浏览

wcf - 为 net.msmq 端点实现合同的 WCF 服务对象是否也可以为 net.tcp 端点实现回调合同?

尝试实现 MSMQ 支持的 WCF PubSub。我知道 net.msmq 是单向的;但是,当我使用单个服务对象来实现 net.msmq 端点以从底层队列中读取,并使用 net.tcp 端点供侦听器订阅回调时,我遇到了很多关于单向 vs 的抱怨.双向,DuplexChannelFactory,DuplexClientBase,等等等等。

似乎实现这一点的唯一方法是让 net.msmq 队列读取服务成为 net.tcp 发布者服务的客户端,并在从队列中读取新消息时通知发布者,而不是发布消息内部订阅者。或者,不要在接收器上使用 net.msmq,而只是准备好一个普通的旧 MessageQueue 对象。