问题标签 [ws-discovery]

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

gsoap - gsoap:强制 WS-Discovery 1.0 而不是 1.1

我正在使用 gsoap 及其插件 wsddapi 来实现 WS-Discovery。

我需要实现 WS-Discovery v1.0,但插件只输出 v1.1 消息。在插件的源代码中,他们说它对 v1.1 和 v1.0 都有效,但我无法理解如何强制 gsoap 使用 v1.0 消息。

你有什么提示吗?

0 投票
2 回答
438 浏览

c# - Java如何发现WCF服务?

请访问http://www.codeproject.com/Articles/31285/WS-Discovery-for-WCF,我已经下载了源代码并使用相关的 WSDiscovery 在 .NET Framework 3.5 中编写了一个 WCF 服务,并将该服务发布到源代码中具有相同配置的网页。它运行正确,WCF客户端也可以发现这个服务。现在我的问题来了,Java客户端可以通过WS-Discovery或其他人发现这个服务吗?非常感谢!

0 投票
2 回答
975 浏览

wcf - 将 URI 解析为 EndpointAddress

我目前有一个 WCF 客户端,它能够进行临时服务发现以查找在本地子网上运行的(未知)服务。我想实现一种方法,让用户通过在文本框中输入 URI 来指定要使用的服务端点,并让客户端将此 URI 解析为EndpointAddress,并在此过程中收集有关服务的其他元数据。即,我需要收集EndpointIdentityEndpointDiscoveryBehavior.

我试图通过使用来实现这一点DiscoveryClient.Resolve(),但我只收到该ResolveResponse.EndpointDiscoveryMetadata属性的 null 。

我找到了很多关于 的信息,但关于 的信息DiscoveryClient.Find()并不多DiscoveryClient.Resolve()

所以我的问题是:

  • 这是 的预期用途DiscoveryClient.Resolve()吗?
  • MetadataResolver这里更合适吗?
  • 如何将 URI 解析为 aEndpointAddress并获取其他元数据?
0 投票
2 回答
1623 浏览

c# - WCF discovery with service hosts using net.tcp://0.0.0.0:0/blah announces net.tcp://0.0.0.0:0/blah

I wanted a discoverable service that would listen on all interfaces and publish discovery announcements for each interface. I was hoping to be able to eventually just configure this in the config file using tcp://0.0.0.0:0/blah as the service endpoint. But when I run the code below, the announcements that it sends out use tcp://0.0.0.0:0/blah as the EndpointAddress which is useless to clients.

I want to receive announcements for every endpoint it derived from tcp://0.0.0.0:0/blah and I would prefer to use a config file and not a programmatic service host setup like below. Any ideas for a workaround?

0 投票
1 回答
696 浏览

wso2 - wso2:ws-discovery 集成

WSO2 WS-发现集成

我们正在尝试将 WS-Discovery 与 Carbon 产品 WSO2 Governance Registry 和 WSO2 ESB 集成,通过 Spring 在 Tomcat 上运行配置 Apache CXF Web 服务堆栈,向 WSO2 上的 Discovery Proxy (localhost:9443/services/DiscoveryProxy) 发送问候消息格雷格。

因此,我们将 cxf-services-ws-discovery-service.jar 和 cxf-services-ws-discovery-api.jar 添加到 Tomcat 的类路径中。此外,我们将 spring bus 属性 org.apache.cxf.service.ws-discovery.address 设置为 WSO2 Greg 上的 WS-Discovery 代理的 URL 地址,以在托管模式下运行 WS-Discovery。通过运行 Tomcat 和 WSO2 Greg,wso2Carbon.log (WSO2 Greg) 中记录了以下错误消息...

我们通过阅读 WSO2 产品文档和搜索多个论坛、博客等尝试了几个小时来解决这个问题。不幸的是,我们找不到解决方案。

备注:WS-Discovery 与 WSO2 应用程序服务器而不是 Tomcat 的集成工作得很好。但是,当使用 WSO2 ESB 作为发现客户端从 WSO2 Greg 发现服务时,从 WSO2 ESB 上发现的服务创建代理服务的向导在创建代理后缺少 publishWSDL xml 标记。此标签必须手动添加。有没有办法在不另外编辑的情况下完成这项工作?

我们将不胜感激。

提前致谢

0 投票
2 回答
1755 浏览

c# - WCF 服务故障处理 WS-Discovery Resolve 消息

我们有一个实现发现的 WCF 服务。它工作正常,但我们有一个错误处理程序似乎正在网络上捕获一条消息,我不确定它是否无效。使用网络监视器后,它似乎正在处理/忽略其他与发现相关的消息,而不是这个。

我的问题:是否可以在我的服务中添加某种额外的配置来优雅地处理这种(类型)消息?

我只是想知道我们是否遗漏了什么。如果没有简单的解决方案,我很乐意让我们的服务将其作为当前故障处理。

这是错误:

这是消息:

这是我基于默认 WCF 新项目模板的示例应用程序:

程序.cs:

IService1.cs 和 Service1.cs:

干杯,克里斯。

0 投票
1 回答
1397 浏览

c# - 发现 - ProbeMatch 响应被丢弃

我使用 onvif 相机,但发现有一些问题。

使用如下非常基本的发现代码,我得到了我们网络上大多数设备的回复,但有一些被丢弃了。我添加了跟踪日志记录,我可以看到发现客户端丢弃的消息以及描述

DiscoveryClient 删除了带有 messageId='uuid:xxx' 和 relatedTo='uuid:xx' 的 ProbeMatches 消息,因为相应的 Find 操作已完成或相关的值无效。

查看跟踪中的相关值以及 MS 网络监视器中的值,它们似乎完全相同,而被丢弃的那些在前几个回复中,所以我认为它们不是在操作完成之后。

我还运行了 sourceforge 上的 onvif 设备管理器,这有同样的问题,但使用不同的设备,以前有没有人遇到过这个问题或者有任何想法可能导致它。

0 投票
1 回答
2168 浏览

c# - 具有多个 IP 地址的网络接口上的 WCF Web 服务发现

我正在尝试使用 WCFDiscoveryClient使用以下代码进行 Web 服务发现:

这在具有分配给单个网络接口的单个​​ IP 地址 (10.1.4.25) 的机器上非常有效。广播从 10.1.4.25 发送到 239.255.255.250,我收到来自同一子网的 5 台设备的响应。

但是,当机器在同一个接口上有多个 IP 时,它似乎会选择一个源 IP 并从中发送请求。在这种情况下,我收到了来自单个设备的回复,给出了 169.254 地址。

我尝试设置UdpDiscoveryEndpoint.TransportSettings.MulticastInterfaceId一个合适的接口 ID,但它没有帮助,因为它识别单个接口,而不是特定的 IP。该UdpDiscoveryEndpoint.ListenUri属性还返回多播地址,因此不会影响源 IP。 UdpDiscoveryEndpoint.Address是发现协议的 URN。

有什么方法可以强制它从特定的 IP 地址发送,或者理想情况下,每个配置的 IP 上的多个请求?

我也尝试过似乎有同样问题的ONVIF 设备管理器。

请注意,这不是让服务绑定到特定的或“所有地址”IP。它与发送发现请求的 IP 有关。

0 投票
1 回答
432 浏览

spring - 如何设置其 WS-Discovery 插件使用的 CXF 服务的 publishedUrl?

我正在尝试使用 CXF WS-Discovery 插件发布 CXF 服务的 URL。

教程https://cxf.apache.org/docs/writing-a-service-with-spring.html帮助我构建了一个 helloworld 服务。WS-Discovery 的 CXF 文档https://cxf.apache.org/docs/ws-discovery.html说明添加 cxf-services-ws-discovery-service.jar 允许发布它。

很好,但是发布的 url 是相对于 servlet 的,因此无法从发送 WS-Discovery Probe 的客户端访问。

我发现了一个有趣的方法http://osdir.com/ml/users-cxf-apache/2012-05/msg00524.html建议使用以下 web.xml 和 cxf-servlet.xml 文件:

网页.xml:

cxf-servlet.xml:

如果 servlet 容器使用端口 8080,这可以正常工作。

我尝试使用servletContext.getRealPath('/webservices'),但这给出了文件系统路径而不是 http 地址。

有没有办法获取 servlet 容器端口(符合 tomcat、jetty、...)?或发布可导出 URL 的其他方式?

0 投票
1 回答
857 浏览

android - Android 的 WS-Discovery 实现

我需要在 android 上使用 WS-Discovery。我用谷歌搜索了将近一天,但没有找到。
如果你处于我的境地,你会怎么做?