问题标签 [duplex-channel]

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

c# - 如果成员具有回调实现,io如何调用成员

我有一个服务对象,它的方法具有下面提到的回调实现

我创建了一个 DuplexChannelfactory 并在我的客户端中获取了服务对象。现在,我使用服务对象检索类型作为客户端:

我已经在客户端实现了 IServiceOneCallback 方法

我正在调用 GetMacName() 方法,如下所述:

这正在失败......我错了,是回调需要在 Invoke 中完成

0 投票
1 回答
376 浏览

wcf - 初学者的常规 WCF 服务设置

我通常在寻找关于 wcf 服务的某种反馈,我是一个完整的初学者。基本上,客户端需要将 xml 文件和图像传输到服务,并且能够从服务中提取数据集/或 xml 文件。我已经建立了一个 wsDualHttpBinding 双工合同来允许这个(回调)。我的主要三个问题是:

  1. 建立双工合约是实现来回数据传输的唯一方法吗?
  2. 使用 wsDualHttpBinding,我显然无法流式传输,如果我的文件不大于 10mb,让该缓冲区然后将其发送到服务是否正常?
  3. 将 .jpg 图像发送到服务的最佳方式是什么?

我真的可以使用一些反馈,wcf 可能非常复杂,对于初学者来说找到正确的做事方式并不容易。以前关于此主题的问题没有太多反馈。

编辑:设置流后,端点不遵循 http 协议出现错误

0 投票
2 回答
2444 浏览

wcf - WCF Duplex nettcp 回调不起作用

环境

WCF 服务 (NET:TCP | Reliable | SecurityEnabled) 在物理机 A 上作为控制台运行

有 20-30 个 .NET 客户端应用程序 (Winforms) 暴露在 Citrix 上,因此再次托管在与服务器不同的一台物理机器上。

问题

应用程序结构遵循与Juval Lowy在http://msdn.microsoft.com/en-us/magazine/cc163537.aspx中讨论的相同模式。

问题出在服务器上,它能够毫无错误地调用回调,但客户端永远不会收到它。如果在 60 秒内没有回调调用,则有代码尝试再次订阅。它的副作用是它通过调用服务器上的订阅 API 打开一个新连接。在一段时间内,您可以看到服务器上打开了许多 TCP 连接。没有错误,但仍然永远不会调用客户端回调。

附加信息

有时会抛出以下错误:

无法在分配的超时时间 00:01:00 内传输消息。可靠通道的传输窗口中没有可用空间。分配给此操作的时间可能是较长超时的一部分。

此外,MaxBufferPoolSize 设置为 Int64.MaxValue,如下面的代码所示

任何建议都会有很大帮助!

0 投票
2 回答
535 浏览

wcf - WCF DuplexChannel - 没有回调的连接

我有一个定义了回调的 WCF 接口。这工作得很好。

现在我有另一个不需要回调的客户端。我想知道是否有一种方法可以在不指定回调对象的情况下连接到服务?

我试过没有 DuplexChannel 工厂,或者 DuplexChannelFactory 和 InstanceContext (null),都没有用!

有没有办法做到这一点?

0 投票
1 回答
445 浏览

wpf - 双工通道回调调用抛出异常的方法。执行在哪里?

以及如何将其呈现给用户?这篇文章:WCF Duplex:如何处理双工回调中抛出的异常与我的场景非常接近。这篇文章对于帮助我在通道出现故障时重新建立连接很有用。

我有一个发布应用程序 Pub 和一个订阅 WPF 应用程序 Sub。Pub 发送消息,Sub 已使用双工通道订阅回调。
Sub.ViewModel.ReactToChange(sender, e)尝试读取一些数据,但无法读取并引发异常。

DispatcherUnhandledException没有捕捉到它(我真的没想到。)
AppDomain.CurrentDomain.UnhandledException没有捕捉到它(这让我感到惊讶)
最终结果是我有一个仍在运行的应用程序,并且没有向用户显示异常消息所以他们可以纠正问题。有没有办法可以向用户显示该异常?

0 投票
0 回答
2193 浏览

c# - 未能查找通道以接收传入消息。未找到端点或 SOAP 操作

我对 WCF 服务非常陌生。我有 1 个使用 NetHttpBinding 创建的 WCF 服务,并且我有一个 Form 应用程序作为该服务的客户端,我正在尝试使用它制作一个简单的 2 路通信示例。

这是我的

ITestService.cs

测试服务.svc.cs:

网络配置:

这是我的表格申请详情:

Form1.cs:

应用程序配置:

我尝试调试它,我可以看到我从客户端到 WCF 服务的调用成功,因为我也可以看到“Inside Do Work”。但我无法回电给客户

"callback.test("Hello by WebSockets");" ,我在 web.config 中启用了跟踪视图日志记录,我可以在 traceView 中看到以下错误:“无法查找通道以接收传入消息。找不到端点或 SOAP 操作”

你能否让我知道我可能会错过什么。任何帮助表示赞赏。

先感谢您,

啊啊啊..

0 投票
0 回答
290 浏览

wcf - 关闭双工通道仍然会在跟踪中产生错误

我有一个用于发布/订阅模式的双工 WCF 通道。我无法弄清楚如何在不产生跟踪错误的情况下干净地断开客户端。该错误不会影响应用程序,但会显示在跟踪日志中。由于这个预期的错误消息正在填满我们的日志,因此很难找出其他问题。

服务器端日志中显示的错误:

“现有连接被远程主机强行关闭” System.ServiceModel.Channels.SocketConnection.HandleReceiveAsyncCompleted() System.ServiceModel.Channels.SocketConnection.OnReceiveAsync(Object sender, SocketAsyncEventArgs eventArgs) System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncFailure(SocketError socketError, Int32 bytesTransferred, SocketFlags flags) System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

客户端回调接口:

调用 NotifyComplete 后客户端清理代码

0 投票
1 回答
2452 浏览

c# - 我应该将什么传递给双工 WCF 客户端实例上下文

这是为我的双工 WCF 服务生成的代理:

我想从这个类继承并建立一个像这样的新类:

我的问题是基类需要一个InstanceContext. 我应该通过什么作为这个论点?

0 投票
1 回答
707 浏览

c# - IIS 问题上的 WCF net.tcp 服务

我正在开发一个客户端-服务器项目,其中客户端通过 Internet 部署。所有服务都用 WCF 编写并使用wsHttpBinding. 我需要实现客户端回调功能,并且由于客户端位于防火墙和 NAT 之后,我被告知可以使用netTcpBinding绕过防火墙/NAT 的方法。所以我创建了服务和回调合约。

在客户端,这就是我尝试连接它的方式:

该代码几乎与连接到wsHttpBinding服务的代码相同,除了绑定类型和ChannelFactory. web.config也看起来像这样:

当我进行服务调用时,请求确实到达了IIS,但是抛出了一个没有内部异常消息的异常,并且在服务器端,我得到了以下跟踪日志:

我知道这是一个非常普遍的错误,我的问题是,您是否发现我的 Web 配置设置有任何问题?任何帮助表示赞赏。

0 投票
1 回答
791 浏览

wcf - 使用 wsDualHttpbinding 进行大数据传输失败

我正在尝试使用回调同时向多个客户端发送大小超过 25 MB 的数据。我已经使用 wsdualhttp 绑定实现了该服务。当服务尝试同时将数据发送到 3 个以上的客户端时,它会引发“System.OutofMemory”和“无法分配内存”异常。我已经为 serviceThrottling、maxItemsInObjectGraph 以及 maxBufferPoolSize 设置了相关值。另外,我不能使用流媒体。有没有办法做到这一点?

// 服务器端

//客户端