问题标签 [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 回答
507 浏览

wcf - 未对 NetNamedPipeBinding 进行垃圾收集的 WCF 动态代理

因为我在几个小时内找不到我的问题的适当答案,所以我把它贴在这里。

我有一个带有共享接口 (IService) 库和动态创建的代理(使用 CreateChannel 创建)的 WPF/WCF 应用程序。主要问题是代理没有被关闭/处置,我在第 200 次服务调用时遇到了这个异常:

系统达到了为油门“MaxConcurrentSessions”设置的限制。此限制设置为 200。可以通过修改 serviceThrottle 元素中的属性“maxConcurrentSessions”或通过修改行为 ServiceThrottlingBehavior 的“MaxConcurrentSessions”属性来更改限制值。

有趣的是,相同的代理可以与 BasicHttpBinding 一起正常工作!

似乎 NetNamedPipeBinding 代理没有自动关闭和处置。以下是一些客户端代码片段。

你可以看到我没有使用“using”语句,因为代理没有实现 IDisposable。第一个问题是,我该怎么做。在客户端,我使用 IService 作为代理类型。如果我想让 IService 成为 IDisposable,我必须在服务端实现 dispose 方法——因为我的 Service 实现了 IService。这似乎不合逻辑 - 调用服务方法来处理该服务......

由于最好不要将服务调用的所有代码更改为“使用”:有没有办法在不再使用代理时自动处理代理?为什么不自动完成?请注意,我正在使用自定义 IExtensionBehavior - 这可能是原因吗?

任何帮助,将不胜感激。谢谢!

0 投票
1 回答
637 浏览

wcf - WCF:添加新的 netNamedPipeBinding 端点时出错

朋友们,

我有一个 IIS 托管的 Web 服务(

) 与 wsHttpBinding 一起使用。它由 WebApp 使用。我需要一个带有命名管道的相同服务的附加端点,以便我可以从在同一台机器上运行的另一个项目访问该服务。

我在 web.config 中进行了更改以公开命名管道端点。但是,甚至在我测试新的 namedpipe 端点之前,现有的 wsHttpBinding 端点就开始因此更改而引发错误。

来自使用 WebApp 的错误 - 无法激活请求的服务“”。有关详细信息,请参阅服务器的诊断跟踪日志。

毫无疑问,添加命名管道端点会导致问题。如果我修复了 namedpipe 问题,两个端点都可以工作。

这是我的 web.config 更改-

我究竟做错了什么?请帮忙。

0 投票
2 回答
93 浏览

c# - 通过 NamedPipe 传递异常和子类

我正在尝试通过 NamedPipe 传递 Exception 类型的对象(或其子类之一)。

服务合同:

当我像这样使用它时它工作正常:

但是一旦我通过了一个子类:

我得到一个异常,说反序列化失败。

我已经阅读了有关 KnownTypes 属性的信息,但我不知道如何将它用于我自己未实现的类。

有人可以在这里给我一个提示吗?

0 投票
1 回答
250 浏览

wcf - WCF 服务调试行为 IncludeExceptionDetailInFaults = true

我有一个服务器/客户端 WCF 应用程序,其中包含从客户端到服务器的调用以及从服务器到客户端的回调。

当我尝试进行回调时,我遇到了某种错误。但是我得到的信息是无用的,所以他们给你提示设置异常 Detail In Faults 以true查看更多详细信息。

我有这个,但我不知道如何包含其他行为,因为只允许 1。

我也想知道我使用回调的方式。当客户端调用服务器时,我在服务器中的函数会完成我需要的所有工作并保存通道:

然后当我需要从服务器调用客户端时,我使用该通道。但不在那个功能中!

我认为这无法做到,但我在一些例子中看到了它。所以也许我在那里也做错了什么,你只能在从客户端调用的服务器中的函数内进行回调,并且哪个接口指定了接口回调协定。

0 投票
1 回答
668 浏览

c# - 无法让 WCF NetNamedPipeBinding 服务在 IIS 中工作/公开/使用

我有一个 WCF 服务,我需要在 WCF 中使用 NetNamedPipeBinding 公开它。由于某些限制,我无法将自己托管为 Windows 服务。它必须通过 IIS。

我觉得我已经用尽所有可用资源来尝试启动和运行我的服务,但我无法使用它,甚至无法判断它是否被 IIS 拾取。

注意- 我确保 Net Pipe Listener Service 已打开,并且“未激活”的东西已打开,这将在下面的文章中介绍。此外,我将 IIS 站点中的“启用的协议”更改为“http,net.pipe”。

我正在尝试使用以下代码使用该服务:

我的 web.config 具有以下服务定义。

我希望我有一个非常直截了当的问题,但实际上我不太确定问题出在哪里。

我不确定 IIS 是否选择了这项服务,我相当肯定元数据没有正确公开。

我参考了以下文章/示例:

http://dotnetmentors.com/wcf-by-example-on-netnamedpipebinding.aspx http://dotnetmentors.com/hosting-wcf-service-with-nettcpbinding-or-netnamedpipebinding-in-iis.aspx http:// mohammedatef.wordpress.com/tag/netnamedpipebinding/ http://msdn.microsoft.com/en-us/library/ms752247.aspx http://tech.pro/tutorial/855/wcf-tutorial-basic-interprocess-communication

0 投票
0 回答
1107 浏览

c# - WCF NetNamedPipeBinding 服务 NorthwindService 示例与 MyService

在尝试让 Ne​​tNamedPipeBinding 为我的 WCF 服务工作时,我已经完全用尽了资源。我能够在这里找到 NorthwindService 示例。

对于 NorthwindService 示例,我有以下内容:

该示例的配置如下:

我为此定义了一个 IIS 站点,详细信息如下:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

因此,当我转到“添加服务参考”时,我可以完美地提取参考。

在此处输入图像描述

然而,当我尝试在我的实际应用程序中做同样的事情时,我似乎仍然无法弄清楚。我无法引用参考。

网站结构如下:

在此处输入图像描述

该站点的绑定如下: 在此处输入图像描述

我试图通过命名管道公开的服务的配置如下:

服务实现与上面的客户服务相同,但显然重命名以匹配上面的配置。

当我尝试添加服务引用或为此查找元数据时,它找不到它。

在此处输入图像描述

重要提示- 启动 Net Pipe 侦听器和角色服务等所有预配置项均已完成,因此 NorthwindServices 示例有效。

0 投票
1 回答
2083 浏览

c# - 如何诊断 WCF 服务超时的原因?

我正在创建一个 C# windows 服务,它使用NetNamedPipeBinding. 该服务的工作方式如下。

  1. 用户在服务上调用“运行”命令。
  2. 服务触发一个线程,该线程运行数据库查询。
  3. 用户在服务上调用“GetStatus”(大约每秒一次)。

不幸的是,GetStatus 经常超时。这些超时发生在运行服务的中途。即使在步骤 2 中的线程完成运行后,这些超时也会继续。5 到 10 分钟后,对 GetStatus 的调用停止超时。

如何诊断这些超时的原因?


我尝试过的事情:

  1. 添加ServiceBehavior(UseSynchronizationContext = false)DataSenderService.
  2. 添加ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)DataSenderService.
  3. 将调试器附加到服务(在超时期间,GetStatus永远不会进入调用)。
  4. 验证是否在超时期间ServiceHost.State设置为。CommunicationState.Opened

代码片段和异常数据:

-

-

-

0 投票
1 回答
1355 浏览

c# - 如何正确设置 NetNamedPipe 的安全性?

我有一个带有 NetNamedPipe 的 WCF 服务,用于进程间通信,我想在它上面添加安全性。没有安全性,一切都很好,但是当我尝试使用传输安全性时,我收到“InvalidCredentialException:服务器已拒绝客户端凭据”异常。你能帮我么?

代码示例:

...

...

谢谢

0 投票
1 回答
2282 浏览

wcf - 是否可以让在 ASPX 中运行的 WCF 客户端通过 net.pipe 在同一台机器上的另一个站点中调用 SVC?

我有两个网站——一个带有 aspx 文件,一个带有带有两个端点的 wcf 服务,一个 http 和一个命名管道。它们都在同一台机器上运行,因此它们似乎是使用 net.pipe 绑定的候选者。

aspx 文件创建一个服务客户端并尝试调用 net.pipe。我明白了:

“'/dev' 应用程序中的服务器错误。无法发送消息,因为端点地址 'net.pipe://localhost/netNamedPipeBinding' 的服务对于该地址的协议不可用。”

谷歌搜索表明这可能是一个安全问题(没有权限错误与没有侦听器错误相同),但我已经授予 [NETWORK] 用户组的 NTFS 权限,以访问具有服务的网站文件,并且没有任何更改。

带有 aspx 的站点使用 Forms 身份验证(即不是 Windows 身份验证),服务网站是匿名身份验证。web.config 的 net.pipe 安全设置为 =“None”

在本地,这很好用——尽管我必须在控制台应用程序中运行命名管道主机,因为 Visual Studio Dev Server 不能执行命名管道。此外,Http 端点在 IIS 上也能正常工作。

它运行 .NET 4.0、IIS 7.5、Win2008。

IIS 配置 据我所知,

  • net.pipe 已为服务网站启用,配置信息为 *
  • WAS 已安装并启用,(通过 Windows 功能)
  • net.pipe 侦听器 Windows 服务已启用。
  • 每个网站都是匿名访问(身份验证由服务器上的第 3 方单点登录完成)
  • 每个网站都有自己的应用程序池(可能不相关)
  • 服务站点处于网络花园模式(可能不相关)

服务配置(在同一台机器上的 IIS 上运行,不同的 VDIR)

客户端配置(ASP.NET 网站,同一台机器,与服务不同的 VDIR)

(更改服务和合同名称以保护无辜者)

C# 没什么特别的,只是 Add-Service-Reference 生成的代理。(所有这些代码都可以在 wsHttp 绑定中正常工作

0 投票
1 回答
174 浏览

wpf - Citrix 环境中的 NetNamedPipeBinding

我的 WPF 应用程序在独立机器上运行良好。但是,当我尝试在 Citrix 环境中安装和运行它时,出现了一些共享对象问题。

例如,如果 user1 登录到 Citrix 服务器并访问启动应用程序的新实例**(他的实例)**,一切都很好。但是当 user2 登录到他的机器并调用应用程序的新实例时,他一直在获取 user1 的数据

我知道 NetNamedPipeBinding 的范围是全局的和特定于机器的,但是有没有办法解决这个问题?

谢谢。