问题标签 [net.pipe]
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.
c# - 尝试使用 WS-Metadata Exchange 从“net.pipe://localhost/abc.svc”下载元数据。此网址不支持 DISCO
通过 svcutil 生成代理时出现此错误:
该服务的编译没有错误,并且可以正常工作http
。net.pipe
即使在使用 svcutil 生成代理时出错,生成的 wsdl 也可以正常工作。
为了确保生成新文件,我删除了所有旧文件,然后使用 svcutil 生成文件,然后使用它们。它给出了相同的错误,并且还会生成文件,这些文件在使用时不会在使用服务时出现问题。
我只是很困惑为什么当一切正常时会出现这个错误。
wcf - net.pipe 端点无法从客户端应用程序连接
我面临与我的 WCF 服务的 net.pipe 端点相关的问题。我在 Windows 2008 R2 机器上配置了所需的服务器角色(应用程序和 Web 角色)和功能(Windows 激活)。我创建了一个带有 net.tcp、net.pipe 和 http 端点的示例 wcf 服务,并将其托管在 IIS 中。我已经在站点级别以及 Web 应用程序级别启用了所需的绑定。net.tcp 和 http 端点工作正常。但是如下所述,net.pipe 端点出现错误
System.ServiceModel.EndpointNotFoundException:在 net.pipe://localhost/MyWCFService/Service1.svc 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。
服务器堆栈跟踪:
在 System.ServiceModel.Channels.ConnectionUpgradeHelper.DecodeFramingFault(ClientFramingDecoder 解码器,IConnection 连接,Uri via,字符串 contentType,TimeoutHelper 和 timeoutHelper)
在 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection 连接,ArraySegment`1 前导码,TimeoutHelper 和 timeoutHelper)
在 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection 连接,TimeoutHelper & timeoutHelper)
在 System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan 超时)
在 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(时间跨度超时)
在 System.ServiceModel.Channels.CommunicationObject.Open(时间跨度超时)
在 System.ServiceModel.Channels.ServiceChannel.OnOpen(时间跨度超时)
在 System.ServiceModel.Channels.CommunicationObject.Open(时间跨度超时)
在 System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel 通道,TimeSpan 超时)
在 System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan 超时,CallOnceManager 级联)
在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出,TimeSpan 超时)
在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime 操作)
在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)
在 [0] 处重新抛出异常:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型)
在 NetPipeValidation.ServiceReference1.IService1.GetData(Int32 值)
在 NetPipeValidation.ServiceReference1.Service1Client.GetData(Int32 值)
在 NetPipeValidation.Form1.button1_Click(对象发送者,EventArgs e)
我最初的怀疑是 net.pipe 协议没有正确激活。因此验证了所有必需的 Windows 服务都在正确运行(WAS、Net.Pipe Adaptar、Net.Tcp Adaptar)。我还检查了 SMSvcHost.exe.config 文件并确保它具有正确的配置。
由于所有服务都在运行,我启用了性能计数器并检查了我的 net.pipe 注册是否成功。Net.pipe 的 Regitrations Active 和 Net.pipe 注册的 Uris 计为 1。使用这些计数器值,我假设我的端点已正确配置并且从服务器端的角度来看是有效的。
出于某种原因,从客户端无法访问端点。我还需要在机器上进行其他验证吗?
wpf - WPF 应用程序中的 net.pipe 服务主机
合同:
服务:
在 WPF 应用程序中,我执行以下操作:
此 WPF 应用程序启动另一个应用程序,如下所示:
名为 TPM 的应用程序正常启动。然后我在 Visual Studio 的调试菜单中附加到进程,我看到客户端说没有人在端点监听。
这是客户端:
EndpointNotFoundException 在“net.pipe://localhost/AkmDaemon”没有监听端点...... blablabla
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 绑定中正常工作
c# - 作为 NetworkService 运行时出现 WCF EndpointNotFoundException
我有一个由 IIS 托管的 net.Pipe WCF 服务(现在,在我的 VS2010 中):(Global.asax):
我有一个控制台应用程序客户端:
现在,当我作为用户主体运行它时,一切都很好(因此我可以在我的操作中使用 PrincipalPermission)。
但是,如果我为自己创建一个“网络服务”命令行提示符(使用 psexec),并尝试运行客户端(显然,服务正在运行),我会收到 EndpointNotFoundException 异常。
为了让网络服务看到我的命名管道,我需要做些什么吗?
c# - 让 Windows 服务将活动值发送回 WCF 客户端
我有一个 Windows 服务,它使用 net.pipe 作为 WCF 服务器和一个 Windows 窗体客户端来连接它。有一个名为 ConfigSettings 的类具有我希望客户端查询的值。
我想让客户端读取服务使用的 serviceConfig 实例中的当前值。最终,我希望客户更改其中的值,但要先迈出第一步。
表单可以通过命名管道与服务器通信,但 'return serviceConfig 正在向客户端发送一个新的空实例。我想要服务正在积极使用的数据(即 serviceConfig.Setting1 = x; serviceConfig.Setting2 = "foo"; )
Windows 服务和 WCF 服务器代码是(更新到工作版本):
客户端像这样检索配置(更新了一些更改):
更新: 也许我认为需要做的是矫枉过正。看来我在 WCF 和 Windows 服务之间遇到了障碍。
你将如何解决这个问题?
- 需要表单进行配置的 Windows 服务。
- 当服务启动时,它会从磁盘加载一个 config.xml 文件。(一个序列化的类)
- 当 GUI 启动时,我想:
- 检索其当前配置,
- 对其进行一些修改,
- 将其推回服务,
- 触发服务重新读取并对新配置做出反应。
我试图避免静态/将配置文件写入磁盘并告诉服务再次重新读取它。它“似乎”像 WCF 是要走的路。
更新2 似乎只需将服务中的主配置更改为静态,WCF服务就可以直接访问它。我本可以发誓我在发帖之前就这样做了,但我想不是。
我还将 Service1 的命名与上面的 WCFService1 分开,但事实证明这并不重要,并且可以使用任何一种方式。
上面更新了新的完整代码。
iis - WF4 服务问题 - ServiceManagement.svc
在 IIS 中运行的 WF4 服务存在问题。
事件查看器中的错误是“无法在 'net.pipe://[servername]//servicemenagement.svc' 调用服务管理端点以激活服务 '/A_WorkflowService.xamlx' \rException;'带有 To 'net.pipe 的消息://[servername]//ServiceManagement.svc' 无法在接收方处理,因为 EndpointDispatcher 的 AddressFilter 不匹配。请检查发送方和接收方的 EnpointAddresses 是否一致。”
人们有完全相同的问题,但没有解决方案
在网站上启用了 net.pipe 协议,并且在 IIS 中也添加了绑定。基本上我在网上找到的所有内容都被遵循,但我仍然无法弄清楚该错误消息到底是什么意思。
根据https://msdn.microsoft.com/en-us/library/ff383422%28v=azure.10%29.aspx - 服务的地址应该是 {scheme}://hostname:port//ServiceManagement .svc 并且在我的错误应用程序中丢失了位,但是出于什么原因,不知道。
谢谢,帕夫
c# - 网络管道 WCF 服务在具有相同端点名称的不同用户会话中运行
根据我所阅读的有关使用网络管道的 WCF 服务的所有内容,我希望能够在不同的用户会话上使用地址 net.pipe://localhost/service/,因为 WCF 不使用名称而是使用 GUID。
无论如何,当我启动多项服务时,我会收到一条AddressAlreadyInUseException
消息:
有没有办法将每个 WCF 服务的范围限制为用户会话?连接将始终来自同一个用户会话。
wcf - Docker WCF net.pipe
我正在尝试使用 net.pipe 但没有运气让它与 docker 一起使用。我可以使用运行 IIS 的 Windows Server 2016 VM 来解决这个问题。有关如何使其工作的任何信息或示例都将非常有帮助!
服务器信息 操作系统:Windows Server 2016 DockerFile:FROM microsoft/windowsservercore Docker for Windows
Internet -> 端口 80 和 443 -> ASP.NET MVC 前端 -> net.pipe -> WCF 服务
WCF 端点
DockerFile
c# - 无法侦听管道名称“net.pipe://localhost/OurCompanyName/”,因为另一个管道端点已经在侦听该名称
我们多年来一直使用 ServiceHost 在我们的应用程序之间进行本地通信。我们打开一个 net.pipe:net.pipe://localhost/OurCompanyName/
在 Windows 10 补丁KB4480966到来之前,这一直很好。
这是打开服务主机的代码:
由于提到的补丁,我们得到了这个异常:
无法侦听管道名称“net.pipe://localhost/OurCompanyName/”,因为另一个管道端点已经在侦听该名称。