如何从 C# 客户端应用程序执行 ebMS3 AS4 消息传递

Posted

技术标签:

【中文标题】如何从 C# 客户端应用程序执行 ebMS3 AS4 消息传递【英文标题】:How to do ebMS3 AS4 messaging from C# client application 【发布时间】:2018-03-01 23:53:11 【问题描述】:

我正在寻找开发一个使用 AS4 将消息发布到 ebMS3 平台的 C# 应用程序。我是这个地区的新手。有人可以帮忙吗?是否有任何第三方库可以轻松做到这一点?如果没有,我们如何使用 C# 解决方案中的 AS4 发布消息。

【问题讨论】:

【参考方案1】:

我刚刚实现了我们自己的 AS4 解决方案,这是一项艰巨的任务。特别是因为 .NET 不支持带有开箱即用附件的 SOAP。您需要了解很多背景知识——AS4 所基于的所有不同规范。如果它不是一个独立的解决方案,我无法找到用 .NET 编写的 AS4 API...

首先要了解 AS4,这个博客是一个很好的起点: https://www.codit.eu/blog/2016/02/03/as4-for-dummies-part-ii-messaging-overview/

然后您必须了解大部分 EBMS3 规范: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/core/ebms_core-3.0-spec.html

话虽如此 - 这并非不可能。

我一直在研究 Sander 所说的 AS4.NET 框架,它写得很好,是交换 AS4 消息的一个很好的起点。我已将其用作测试端点。

因此,除非您需要将 AS4 直接整合到现有产品中(我们需要这样做),否则我只能推荐使用 AS4.NET。

AS4.NET 也是开源的(并且符合 e-SENS 配置文件),因此您可以查看他们的代码库并让您从 AS4 中的难点中获得启发。

对于 MIME 部分,我可以推荐 Mimekit:https://github.com/jstedfast/MimeKit 对于一些加密/签名的东西,Bouncycastle 很棒:http://www.bouncycastle.org/csharp/

【讨论】:

感谢您对 AS4.NET 的积极反馈 :)【参考方案2】:

不确定它是否可以用作库,但对于欧盟委员会内的一个项目,开发了基于开源 .NET 的 AS4 实现。您可以在 EC 的代码存储库中找到它here。我不知道是否对此有任何支持,所以如果这很重要,您可能应该考虑另一种实现。可通过here 获得经 EC 测试的解决方案列表,以符合他们自己的 AS4 配置文件(或者如果该链接不起作用,请通过搜索“as4 一致性测试实现”)

请注意,大多数是您连接到以执行 AS4 消息交换的独立应用程序。大多数都提供不同的集成选项,因此您应该能够将其集成到您的解决方案中。

【讨论】:

嗯。几乎是您自己产品的广告,以及基于两个外部链接的答案,这些链接可能很快就会失效。这就是为什么“告诉我我可以使用的 API”问题对于 SO 来说不是很好的原因。 @mikkelbm 查看对此答案的编辑,一切都会弄清楚 @jdv - 啊好吧...我错过了那个:-)

以上是关于如何从 C# 客户端应用程序执行 ebMS3 AS4 消息传递的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中为 Firebird 执行块语句

如何从 C# 程序执行 ghostscript

如何从 C# 代码更改可执行图标? (不是我的应用程序图标)

如何通过 JavaScript 从服务器端的网页调用客户端 C# 程序函数?

如何使用 ZeroMQ 从 C# 客户端向 C++ 服务器发送消息

如何避免在 C# 中完成线程?