问题标签 [ws-reliablemessaging]

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

web-services - Axis 1.4 的 WS-ReliableMessaging 实现

您知道您使用了 Axis 1.4 的 WS-ReliableMessaging 实现吗?

0 投票
2 回答
767 浏览

soap - 实现 WS-ReliableMessaging 的 SOAP 库

我正在寻找实现 WS-ReliableMessaging 的 SOAP 库。到目前为止,我遇到了 Apache 的 Axis 的 Sandesha 实现。是否有任何其他框架提供 WS-ReliableMessaging 规范的实现?

谢谢!

0 投票
0 回答
79 浏览

symbian - Symbian 上的轴 2/C

我正在对在移动平台上使用 Web 服务进行一些研究。特别是我目前正在研究 Symbian 平台。现在,我已经看到在 Symbian 环境中使用 gSOAP。有没有人在 Symbian 上看到或使用过 C 版本的 Axis 2?我正在尝试探索多个选项,特别是对 WS-ReliableMessaging 的支持是堆栈的关键因素。谢谢!

0 投票
1 回答
4376 浏览

c# - 了解 WCF 可靠会话重试行为

我有几个关于 WCF 可靠会话可靠性的问题:

  1. WCF 是否在重试期间重新序列化消息?

    2. 如果 1 是正确的 - 是否在消息参数被处理后发生?
    3. 如果 2 是正确的 - 有什么方法可以确定消息是否已发送?

我还无法通过反射器弄清楚这一点。

UPD 1:我对服务器返回值更感兴趣。他们会发生什么?

UPD 2:消息参数(准确地说是服务器回复)何时处理?收到适当的确认后会发生这种情况吗?这就是我所说的处理参数的意思:

我需要用它来处理服务器回复(我有另一个关于我为什么要使用这个解决方案的 SOF 线程)。

UPD 3:我要解决的问题是,我的服务器回复似乎首先被处理,然后应用程序尝试对其进行序列化。我 99% 确信我不会在其他任何地方重复使用相同的对象。Stacktraces 非常丑陋而且很大,无法在此处发布。

0 投票
1 回答
1770 浏览

.net - WCF WebService - 有没有办法确定客户端收到响应?

假设我有一个 WCF 服务,客户端可以使用它来接收来自某些服务器端消息队列的消息。例如,假设数据表中有一个服务器端电子邮件队列:

让我们将我们的服务定义为:

让我们假设 LoadMessagesFromDb() 只抓取 SENT = 'N' 的所有消息。所以我们加载这些,然后提取所有文本字符串并返回它们。

现在我的问题是我真的需要在我的数据表中将这些消息标记为“sent = 'Y'”。我可以做类似的事情:

但是,如果将数据返回给客户端出现错误,会发生什么?可能是连接问题,还是 WCF 序列化问题?我真正想做的是不知何故知道客户端成功收到了消息。我现在唯一能想到的就是制作第二个方法,客户端可以调用它来指示项目已成功接收:

然后在服务上有第二种方法:

因此,客户必须将所有 ID 发回给我。有一个更好的方法吗?如果我在 ASP.NET 而不是 WCF 中执行此操作,我可以让该方法打开响应流并写回数据,然后在 try/catch 中进行操作,但我似乎在 WCF 中没有相同的灵活性,而无需制作一堆自定义消息编写器和扩展...任何人都知道如何判断在传输回客户端期间是否有错误?ws-reliablemessaging 能给我什么吗?

0 投票
1 回答
6846 浏览

wcf - WSHttp 绑定和 ReliableSession / MaxRetryCount

WSHttpBinding启用了可靠会话的 WCF 中使用时,我的服务引用会自行更新为:

maxRetryCount只要绑定配置为 WSHttpBinding,我就无法将该属性添加到可靠会话。

现在我的问题是:maxRetryCount使用 WSHttpBinding 时的价值是什么,有什么方法可以在配置中更改它;不使用 CustomBinding?

0 投票
1 回答
1736 浏览

c# - WCF - 重试不起作用?

我的绑定有以下配置:

我的期望是,当客户端代理在 2 分钟内发送失败时,应该重试请求。然而:

16:37:49,242 INFO启动过程
16:39:49,588 FATAL请求操作未在分配的 00:02:00 超时内完成

所以应用程序会在 2 分钟内抛出错误,并且不会重试请求。我应该怎么做才能让它开始重试?

0 投票
0 回答
1151 浏览

wcf - WCF ReliableSession 和超时

我有一个 WCF 服务,主要用于管理存储库中的文档。
我使用了 MS 的分块通道示例,以便我可以上传/下载大文件。
现在我实现了与服务的可靠会话,我看到了一些奇怪的行为。
这是我正在使用的超时值。

我有以下问题:
1. 如果服务没有启动和运行,客户端在 OpenTimeout 后不会断开连接。

我用我的测试客户端试了一下。

场景 1:没有可靠会话: 我收到以下异常:无法连接到 net.tcp://localhost:8788/MediaManagementService/ep1。连接尝试持续了 00:00:00.9848790 的时间跨度。TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8788

这是正确的行为,因为我将 OpenTimeout 设为 1 秒。

场景 2:使用 ReliableSession:
我得到同样的异常:

无法连接到 net.tcp://localhost:8788/MediaManagementService/ep1。连接尝试持续了 00:00:00.9692460 的时间跨度。TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:8788。

但是这个消息是在大约 10 mintes 之后出现的。(我相信在 SendTimeout 之后)所以在这里我刚刚启用了可靠会话,现在它看起来像客户端的 OpenTimeout = SendTimeout。
这是期望的行为吗?

2:使用 ReliableSession 上传大文件时的问题:
一般规则是您必须为 maxReceivedMessageSize、SendTimeout 和 ReceiveTimeout 设置一个巨大的值。
但是在分块通道的情况下,接收到的最大消息大小无关紧要,因为数据是以块的形式发送的。
所以我为 Send 和 ReceiveTimeout 设置了一个巨大的值:比如 10 小时。现在上传正常了,但是有一个副作用,即使服务没有启动,由于(1)中提到的行为,客户端连接也需要 10 个小时才能超时。

请让我知道您对这种行为的看法。

0 投票
4 回答
342 浏览

soap - 我如何教导 SOAP 不是可靠的传输方式?

我需要教导可能会收到 HTTP SOAP 调用,但调用者可能由于网络故障(以及其他问题)而无法获得响应。(这个问题使得WS-ReliableMessaging得以开发)

你们如何向 Web 服务开发人员展示这个问题,以便他们可以在考虑到可能收到重复消息的情况下进行开发?

问题是他们不明白一个 HTTP 调用可能会被服务器完美地接收并作用于服务器,但对调用者的响应可能会丢失。

0 投票
1 回答
404 浏览

wcf - WCF ReliableMessaging 方法调用了两次

使用Fiddler,我们会在以下情况下为每个调用看到3 个 HTTP 请求(和匹配的响应)

  • WS-ReliableMessaging 已启用,并且,
  • 该方法返回大量数据(17MB)

第一个 HTTP 请求是带有“CreateSequence”操作的 SOAP 消息(假定建立可靠会话)。第二个和第三个 HTTP 请求是调用我们的 webservice 方法的相同 SOAP 消息。为什么会有两条相同的消息?

这是我们的配置:

谢谢,

布赖恩