问题标签 [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.
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 - 这可能是原因吗?
任何帮助,将不胜感激。谢谢!
wcf - WCF:添加新的 netNamedPipeBinding 端点时出错
朋友们,
我有一个 IIS 托管的 Web 服务(
) 与 wsHttpBinding 一起使用。它由 WebApp 使用。我需要一个带有命名管道的相同服务的附加端点,以便我可以从在同一台机器上运行的另一个项目访问该服务。
我在 web.config 中进行了更改以公开命名管道端点。但是,甚至在我测试新的 namedpipe 端点之前,现有的 wsHttpBinding 端点就开始因此更改而引发错误。
来自使用 WebApp 的错误 - 无法激活请求的服务“”。有关详细信息,请参阅服务器的诊断跟踪日志。
毫无疑问,添加命名管道端点会导致问题。如果我修复了 namedpipe 问题,两个端点都可以工作。
这是我的 web.config 更改-
我究竟做错了什么?请帮忙。
c# - 通过 NamedPipe 传递异常和子类
我正在尝试通过 NamedPipe 传递 Exception 类型的对象(或其子类之一)。
服务合同:
当我像这样使用它时它工作正常:
但是一旦我通过了一个子类:
我得到一个异常,说反序列化失败。
我已经阅读了有关 KnownTypes 属性的信息,但我不知道如何将它用于我自己未实现的类。
有人可以在这里给我一个提示吗?
wcf - WCF 服务调试行为 IncludeExceptionDetailInFaults = true
我有一个服务器/客户端 WCF 应用程序,其中包含从客户端到服务器的调用以及从服务器到客户端的回调。
当我尝试进行回调时,我遇到了某种错误。但是我得到的信息是无用的,所以他们给你提示设置异常 Detail In Faults 以true
查看更多详细信息。
我有这个,但我不知道如何包含其他行为,因为只允许 1。
我也想知道我使用回调的方式。当客户端调用服务器时,我在服务器中的函数会完成我需要的所有工作并保存通道:
然后当我需要从服务器调用客户端时,我使用该通道。但不在那个功能中!
我认为这无法做到,但我在一些例子中看到了它。所以也许我在那里也做错了什么,你只能在从客户端调用的服务器中的函数内进行回调,并且哪个接口指定了接口回调协定。
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
c# - WCF NetNamedPipeBinding 服务 NorthwindService 示例与 MyService
在尝试让 NetNamedPipeBinding 为我的 WCF 服务工作时,我已经完全用尽了资源。我能够在这里找到 NorthwindService 示例。
对于 NorthwindService 示例,我有以下内容:
该示例的配置如下:
我为此定义了一个 IIS 站点,详细信息如下:
因此,当我转到“添加服务参考”时,我可以完美地提取参考。
然而,当我尝试在我的实际应用程序中做同样的事情时,我似乎仍然无法弄清楚。我无法引用参考。
网站结构如下:
该站点的绑定如下:
我试图通过命名管道公开的服务的配置如下:
服务实现与上面的客户服务相同,但显然重命名以匹配上面的配置。
当我尝试添加服务引用或为此查找元数据时,它找不到它。
重要提示- 启动 Net Pipe 侦听器和角色服务等所有预配置项均已完成,因此 NorthwindServices 示例有效。
c# - 如何诊断 WCF 服务超时的原因?
我正在创建一个 C# windows 服务,它使用NetNamedPipeBinding
. 该服务的工作方式如下。
- 用户在服务上调用“运行”命令。
- 服务触发一个线程,该线程运行数据库查询。
- 用户在服务上调用“GetStatus”(大约每秒一次)。
不幸的是,GetStatus 经常超时。这些超时发生在运行服务的中途。即使在步骤 2 中的线程完成运行后,这些超时也会继续。5 到 10 分钟后,对 GetStatus 的调用停止超时。
如何诊断这些超时的原因?
我尝试过的事情:
- 添加
ServiceBehavior(UseSynchronizationContext = false)
到DataSenderService
. - 添加
ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)
到DataSenderService
. - 将调试器附加到服务(在超时期间,
GetStatus
永远不会进入调用)。 - 验证是否在超时期间
ServiceHost.State
设置为。CommunicationState.Opened
代码片段和异常数据:
-
-
-
c# - 如何正确设置 NetNamedPipe 的安全性?
我有一个带有 NetNamedPipe 的 WCF 服务,用于进程间通信,我想在它上面添加安全性。没有安全性,一切都很好,但是当我尝试使用传输安全性时,我收到“InvalidCredentialException:服务器已拒绝客户端凭据”异常。你能帮我么?
代码示例:
...
...
谢谢
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 绑定中正常工作
wpf - Citrix 环境中的 NetNamedPipeBinding
我的 WPF 应用程序在独立机器上运行良好。但是,当我尝试在 Citrix 环境中安装和运行它时,出现了一些共享对象问题。
例如,如果 user1 登录到 Citrix 服务器并访问启动应用程序的新实例**(他的实例)**,一切都很好。但是当 user2 登录到他的机器并调用应用程序的新实例时,他一直在获取 user1 的数据。
我知道 NetNamedPipeBinding 的范围是全局的和特定于机器的,但是有没有办法解决这个问题?
谢谢。