问题标签 [netnamedpipebinding]

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

c# - netnamedpipebinding 无限接收超时有多可靠?

我有一个双工 WCF 服务,它依赖于服务和客户端之间的一致命名管道连接。这是一种发布/订阅系统,客户端在服务上调用订阅并被放入订阅列表中。然后,服务调用它自己的某些更新方法,这些方法将通过回调将更新推送到客户端。

我已将 netnamedpipebinding 的 recieveTimeout 设置为“无限”。我可以合理地依赖此连接永远打开吗?更重要的是,是否存在通道在超时之外发生故障的情况?

由于命名管道只是一个共享内存位置,除了硬件问题之外,我想不出它会持续失败的许多原因。此外,没有太多方法可以保证在一定间隔内进行 ping 之外的连接。

顺便说一句,我的直觉是避免同时使客户端成为 WCF 服务。我知道这不是一个真正的循环依赖,但它只是感觉很恶心。然而,我对那些告诉我我只是偏执的人持开放态度,这种模式是可以的。

0 投票
2 回答
1287 浏览

wcf - 如何使用 WCF 命名管道绑定跨越会话边界?

Windows 7 具有运行服务的会话 0,以及与用户交互的其他会话。

在会话 0 中运行的 WCF 客户端无法看到在会话 1 中公开的管道,除非:

  • 设置SeCreateGlobalPrivilege- 不是我的选项
  • 显示作为会话 0 用户运行但对会话 1 用户可见的 UI - 当服务使用CreateProcessAsUser
  • 使用其他绑定,例如netTcpBinding

还有其他解决方案吗?

这个问题也出现在Microsoft 论坛帖子中

0 投票
3 回答
6925 浏览

wcf - 保护 WCF 使用的命名管道

我是 WCF 和命名管道的新手。

我需要一种在同一台机器上的 UI 应用程序和 Windows 服务之间安全通信的方法。这是我需要的: - 客户端 UI 应用程序需要向 Windows 服务发送(推送)各种消息类型。- 客户端 UI 应用程序需要从服务接收各种消息类型(推送或拉取)。

(这里的消息只是一个结构化的序列化数据)。

现在所有这些交换都应该只在授权用户帐户下进行(可能与服务帐户不同)。所以我正在考虑为服务和用户帐户创建一个命名管道。

但是,命名管道仅支持流。我有多种类型的消息需要通过命名管道进行交换,这意味着我需要定义它们并序列化/反序列化它们。

为了避免这种情况,我想到了在命名管道上使用 WCF(用于序列化和 RPC 支持)。还在 Windows 服务中托管 WCF 服务。

问题1)这是一个好方法吗?我在使用 WCF 下的 http 或 tcp 时犹豫不决,因为通信必须保持在机器内。

问题 2) 如果以及如何 ACL WCF 将使用的命名管道?这是我能控制的吗?我觉得使用特定 SID 对名称管道进行 ACL 可以为我提供更好的安全性,而不是在客户端和服务器之间实施身份验证方案。

感谢您的任何指点,建议!萨米尔

0 投票
1 回答
723 浏览

wcf - WCF NamedPipe:PerSession-Single 或 Singleton-Multiple

我正在构建 Web 应用程序(在此上下文中为客户端),它通过命名管道 wcf 服务(WCF 4)与不同的进程(在此上下文中为服务器)进行通信。

在阅读了许多文章后,我正在考虑创建一个连接到服务器的代理池(我已经阅读过它提供了更好的性能),用于轮询。

每次调用都将非常短,在服务器上我需要读取和写入少数对象的简单属性,但这些对象是共享的,所以无论如何我都必须使用锁。我期望非常高的并发性。

由于池,客户端将始终与服务器打开 N 个会话。

我想知道在 PerSession-Single 或 SingleInstance-Multiple 之间 InstanceContext-ConcurrencyMode 的最佳设置应该是什么。

谢谢你

0 投票
2 回答
324 浏览

c# - 在网络上使用 NetNamedPipe?

我们正在构建一个启动/停止其他进程的窗口服务,UI 和服务之间的通信是通过 NetNamedPipe 进行的。

每个进程都有一个可以获得关闭调用的主机(仍然使用 NetNamedPipe 以避免端口交叉)。

我已经在我的计算机上使用过它,当我将它移到服务器上时它不起作用(NetNamedPipe 不适用于跨网络 - 现在我知道了)。

有什么办法可以做到这一点吗?

0 投票
2 回答
4473 浏览

c# - 使用 NetNamedPipe 的 WCF 多个应用程序

我正在尝试在同一台机器上运行多个 WCF 服务托管应用程序。

我想在一个应用程序中运行多个应用程序- 而不是多个服务。

我为每个应用程序更改“FOO”,但仍然无法启动多个服务。猜猜它很简单,但我卡住了:(

问候

0 投票
1 回答
2759 浏览

wcf - WCF 本地计算机 ServiceHost 和管理员权限

有没有办法在本地用户(没有管理员权限)上使用 ServiceHost 运行自托管 WCF 服务?它只需要在本地计算机上。

我正在研究将来将安装在多个桌面上的应用程序,但目前它只需要在 1 个桌面上工作——服务器和客户端。我还想在 1 个 destop 应用程序中使用整个 wcf 堆栈来消除未来的问题。基本上 - 我需要在一个没有管理员权限的系统上启动 WCF 服务器和客户端。也许它可以用 netnamedpipebinding 来完成?

干杯,安德鲁

0 投票
1 回答
887 浏览

c# - 如何仅在同一用户的登录会话中使用 WCF NetNamedPipesBinding 进行进程之间的通信?

我想让两个进程在同一个用户的登录会话中运行,通过 WCF 进行通信。NetNamedPipesBinding 似乎最适合这个。但是可能有多个用户登录并运行这些进程,所以我想要一种方法来确保每个进程只与同一用户登录会话中的其他进程对话。此外,理论上每个用户都可以多次登录同一台机器——同样,不同登录会话中的进程不应该相互交谈。

我并不特别关心安全性(与这个问题不同),这只是一个方法的问题,因此每个进程只在同一个用户会话中与另一个进程对话。

一种解决方案是将唯一的登录会话 ID 添加到端点地址,但我不确定如何获得唯一的登录会话(请参阅我的问题here)。我认为 WCF 中可能有一些方法可以解决这个问题,或者是处理这个问题的标准方法。

0 投票
2 回答
1663 浏览

c# - WCF:将编程配置转换为 app.config

我有以下工作编程配置(服务器端)

试图把它变成代码app.config

但是,这似乎不起作用——即客户端无法连接到此。

我的 app.config 代码有问题吗?还是我必须以编程方式告诉 .NET 使用 app.config 中的配置?

0 投票
1 回答
597 浏览

.net - WCF 唯一基地址问题

我遇到了 WCF 报告的问题...

net.pipe://192.168.0.100/SystemA/Service1.svc/mexPipe' 无法激活。

我已将我的基址定义如下:

服务1...

服务2...

然后,对于每项服务,我将 Mex 端点定义如下......

这肯定会给我 2x mex 端点,如下所示...

但是我不认为这是在看这篇文章......

net.tcp 绑定元数据问题

发帖人似乎与我有类似的配置,响应者说基地址在每个方案中都不是“唯一的”——但它们肯定是因为它们都引用了两个唯一的服务?

WCF 可以检测到我的 mex 端点是 netNamedPipe 并查找它们的基地址吗?鉴于绑定是“mexNamedPipeBinding” - 或者这不起作用?