问题标签 [pollingduplexhttpbinding]

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

silverlight-4.0 - Silverlight 轮询双工配置错误

我在 system.serviceModel 下的 web.config 文件中有以下内容:

当我尝试在浏览器中访问服务时得到的是错误消息:

解析器错误消息: “System.ServiceModel.Configuration.PollingDuplexElement, System.ServiceModel.PollingDuplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”类型的扩展已经出现在扩展集合中。扩展类型必须是唯一的。

所以看起来 PollingDuplexElement 已经在扩展集合中注册了。我只是不知道在哪里,或者以什么名字。

我试过查看 machine.config 文件,没有找到对轮询双工程序集的任何引用。在我的 web.config 文件中也没有其他对程序集的引用,Google 也没有提供太多帮助。

任何想法将不胜感激:)

0 投票
1 回答
85 浏览

multithreading - 作为 pollingDuplex 场景的一部分启动后台线程的最佳方法是什么

客户端应用程序将注册请求以监视服务器上的事件。客户端的回调被添加到字典中(并由客户端定期刷新)

服务器将监视 MSMQ 专用队列的事件,当订阅者注册的事件发生时,服务器将调用客户端。

这取决于启动一个后台线程,该线程可以在 MSMQ 上等待,然后调用已注册的客户端应用程序。启动此后台线程的最佳方法是什么?我的第一个方法是在 global.asax 文件的 Application_Start 事件中简单地启动它。这有许多陷阱,正如克里斯安德森对这个 SO 问题的回答中所讨论的那样。 此外,这是开发人员停止调试应用程序后线程在开发人员机器上徘徊的陷阱。

也许有一种完全不同的方法是必要的,也欢迎这样的建议。

0 投票
3 回答
2364 浏览

silverlight - 将 WCF 双工轮询与 Silverlight 一起使用时出现死锁

我按照 Tomek Janczuk 在 silverlight tv 上的演示创建了一个使用 WCF Duplex Polling Web 服务的聊天程序。客户端订阅服务端,然后服务端向所有连接的客户端发起通知发布事件。

这个想法很简单,在客户端,有一个按钮可以让客户端连接。客户端可以在其中编写消息并发布消息的文本框,以及显示从服务器接收到的所有通知的更大文本框。

我连接了 3 个客户端(在不同的浏览器中 - IE、Firefox 和 Chrome),一切都运行良好。他们发送消息并顺利接收。当我关闭其中一个浏览器时,问题就开始了。一旦一个客户出去,其他客户就会被卡住。他们停止收到通知。

我猜测服务器中通过所有客户端并向它们发送通知的循环卡在现在丢失的客户端上。我尝试捕获异常并将其从客户端列表中删除(请参阅代码),但它仍然没有帮助。

有任何想法吗?

服务器代码如下:

客户端代码如下:

网络配置如下:

0 投票
1 回答
393 浏览

silverlight - Silverlight 4 双工服务 - 停止回调

我有一个 Silverlight 4 应用程序,它通过创建对客户端的回调来使用 WCF 双工。从客户端,我有一个从数据库中检索所有行的方法(不是真的,但是对于这个例子)。每行都使用回调发送到客户端。我需要弄清楚一旦开始如何中止这个过程。例如,假设我厌倦了看到此表中的所有行在我的屏幕上滚动。我想查看另一个表中的行。如何在第一个动作中间停止它?

我以为我可以在服务器上创建一个新操作来中止处理,但这不会对已经通过回调发送并等待客户端接收的内容做任何事情。

我正在寻找一种方法来保证一旦新的搜索开始,我没有任何旧数据会被客户拾取。有没有人知道实现这一目标的最佳方法?

这很有趣——在使用双工服务之前,我的问题是我无法足够快地获取数据。现在我正在使用双面打印,我无法将其关闭!

0 投票
2 回答
3312 浏览

wpf - wsDualHttpBinding 无法使用 WPF 客户端在网络外部工作

我试图在 WPF 和 WCF 之间实现 DuplexCommunication,在内部测试时通信运行良好,在网络中,当我们在外部发布后尝试访问这个外部网络时,我们能够通过 Web 浏览器访问服务,但是当我们尝试打开连接时,WPF 客户端给出了错误。下面是服务器端和客户端的配置。服务器:

客户:

我尝试在服务器端提供带有 dns 值的“baseAddresses”和“identity”,也尝试在客户端提供 clientBaseAddress,但它仍然无法在网络之外工作。

尝试从 WPF 应用程序打开双工连接时总是出现超时错误:错误:“打开操作未在分配的 00:00:09.4911018 超时内完成。分配给此操作的时间可能是较长超时的一部分。”

我认为配置部分有问题,但不确定是什么,对此非常感谢。

谢谢。

0 投票
2 回答
1506 浏览

c# - WCF 轮询双工会话

我有一个 Silverlight 客户端,它尝试创建会话,但服务器没有响应(客户端抛出超时异常)。在服务器日志中我发现:

这是什么意思?为什么带有轮询双工绑定的 WCF 服务不能“接受新会话”?

更新: 服务器有大约 20 个并发会话请求,其中大多数都失败了。但是当我开始另一个测试运行时,一切正常。此问题时有发生,重启服务器通常会解决此问题。服务器配置:

0 投票
3 回答
2654 浏览

silverlight - 为什么我的 Wcf Duplex 服务在第一次调用服务后进入故障状态?

我想要做的是拥有多个客户端注册到的 wcf 双工服务。当客户端调用服务时,其他客户端会收到调用通知。

现在,我有一个调用 wcf 双工服务的 Silverlight 应用程序。第一次通话时一切正常,包括双工通信。在第二次调用该服务时,我得到一个:

我的服务有两种不同的方法;RegisterClient 和 ReassignOwner。如果我以任何顺序调用相同的方法两次或两种方法一次,我仍然会收到此错误。

在研究了这个主题之后,我认为这可能是一个超时问题。我检查了默认超时值是多少,它是 10 分钟。我在 2-3 分钟的时间内完成了这两个电话。为了确定,我还将不活动超时和接收超时增加到 4 小时,但我仍然遇到这个问题。

接下来,我认为我的服务可能会生成一个异常,这会导致客户端进入故障状态。为了测试这一点,我在我的服务的 2 种方法中放置了 try/catch 语句,并在调试模式下运行程序。我没有发现任何异常。我还尝试从这 2 个方法中注释掉所有代码(因此不会产生异常),并且只调用这 2 个空方法,我仍然得到异常。

通过阅读关于 SO 的其他相关文章,我决定尝试 WCF 跟踪。我在 web.config 中启用了它并将开关值设置为警告。我收到 2 个警告:

以下是我的服务在 .svc.cs 文件后面的代码中的定义方式:

在我的服务合同中,我的方法都具有以下属性:

我的两种方法都是用 Begin 和 End 方法以异步方式实现的。

这是我调用方法的方式

有人知道为什么会发生这种情况,或者对我如何继续尝试解决这个问题有任何线索吗?

0 投票
2 回答
3196 浏览

silverlight-4.0 - 我需要在 web.config 中修复什么才能让这个 MSDN 示例正常工作?

在 Visual Studio 2010 中使用 .NET 4 和 Silverlight 4,我正在尝试按照 MSDN 指南为 Silverlight 客户端构建双工服务 ( http://msdn.microsoft.com/en-us/library/cc645027(v= vs.96).aspx )。

Web.config 给出警告:

警告 26 元素“绑定”具有无效的子元素“pollingDuplexHttpBinding”。List of possible elements expected: 'basicHttpBinding, customBinding, msmqIntegrationBinding, netPeerTcpBinding, netMsmqBinding, netNamedPipeBinding, netTcpBinding, wsFederationHttpBinding, ws2007FederationHttpBinding, wsHttpBinding, ws2007HttpBinding, wsDualHttpBinding, netTcpContextBinding, wsHttpContextBinding, basicHttpContextBinding, mexHttpBinding, mexHttpsBinding, mexNamedPipeBinding, mexTcpBinding, webHttpBinding'. C:\DuplexService\DuplexService\Web.config

我无法将服务引用添加到客户端。我无法在 WCF 测试客户端中加载服务。我在很多地方寻找答案。我不明白问题是什么。

web.config 当前如下所示:

0 投票
2 回答
1358 浏览

c# - 具有高回调调用的 WCF PollingDuplex 导致新服务订阅的服务太忙异常

我目前正在尝试使用具有 SilverLight 4.0 的 PollingDuplex 绑定来构建双工 WCF 服务。

我的服务每 1 秒为每个连接的客户端调用几个回调方法。但是,在 2 个客户端连接后,新客户端得到“位于...的服务太忙”

我的服务使用这种行为:

WCF 绑定配置:

服务行为:

服务定义:

有什么帮助吗?这个例外让我抓狂!

0 投票
1 回答
3059 浏览

c# - 使用 SilverLight 4.0 和 PollingDuplex 的多房间聊天应用程序

我正在寻找使用 SL 4.0 和 PollingDuplex 构建多房间聊天应用程序的示例或指南。

有什么帮助吗?