问题标签 [rpc]

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 投票
5 回答
9747 浏览

c++ - 套接字异常:“端点映射器没有更多可用的端点”

我正在使用 winsock 和 C++ 来设置服务器应用程序。我遇到的问题是调用listen导致第一次机会异常。我想通常这些可以忽略(?),但我发现其他人有同样的问题,它导致应用程序每隔一段时间就会挂起。任何帮助将不胜感激。

第一次机会例外是:

MyApp .exe中 0x*12345678* 处的第一次机会异常:0x000006D9:端点映射器中没有更多可用的端点。

我发现一些证据表明这可能是由套接字引起的,我正在使用的代码如下。listen异常发生在从底部数第五行的调用中。

0 投票
2 回答
1439 浏览

visual-c++ - midl.exe 6 和 midl.exe 7 的不同输出

我很想将 MSVC 项目从 VS 2005 转换为 VS 2008。它包含一个 IDL 文件,该文件输出用于 RPC 的标头和存根。VS 2005 项目使用 MIDL.exe 版本 6.00.0366。VS 2008 项目使用 MIDL.exe 版本 7.00.0500。

这就是问题所在:MIDL v6 输出以下原型供我在我的服务器代码中实现:

具有相同命令行的 MIDL v7 输出此原型:

我不想将handle_t 参数添加到我现有的所有实现中。(另外,我仍然需要使用 VS 2005 编译一段时间。)

问:如何让 MIDL.exe v7 输出与 v6 相同的 RPC 服务器原型?

0 投票
1 回答
443 浏览

web-services - 远程 API/Web 服务层 MVC 的域逻辑和数据访问

在我们的系统中,我们有一个远程 API 层(例如 SOAP、XML-RPC、REST 等)来处理 Web 应用程序和在其之上开发的任何客户端应用程序的域逻辑和数据访问。与过去不同,我在 Web 应用程序中没有业务逻辑代码和数据库连接,所有用户操作都被转换为调用该层的方法。

我担心的是,例如对于页面的呈现,它需要进行大量调用来获取数据,例如带有报告、最近历史记录、一些 portlet 等的用户仪表板。根据我当前的设计(委托逻辑和 DA到远程层),您看到的缺点是什么?我发现通过 HTTP 建立和传输基于文本的数据比 DB 访问更重且更昂贵。此外,必须在远程层进行优化(给定 Web 应用程序的业务逻辑和 DA 代码,您在优化方面具有更大的灵活性)。

我现在正在考虑是否应该创建一个远程“Helper”服务,它允许我将所有调用压缩为一个,也就是说,我不是进行多次调用,而是发送一个带有一组方法名称和参数的调用。它看起来有点难看,这就是为什么我现在仍然对这样做持怀疑态度。

我想知道您对这种架构的看法,如果您使用类似的方式开发了一个 Web 应用程序,那么您过去采取了哪些方法来保证良好的性能?如果还有其他我真正应该担心的问题,也请与我分享。

谢谢!

yc

0 投票
3 回答
31696 浏览

com - 连接到 WMI:某些机器上的 0x800706ba 错误(但不是全部)

当我尝试从 Powershell、ConfigMgr 或 WMI 资源管理器连接到 WMI 时,我可以与我的大多数计算机通信,但有些(可能是 30%?)返回 0x800706ba(RPC 服务器不可用)。

如果我关闭远程机器上的防火墙,查询就会开始工作。不过,我尝试了一堆不同的防火墙设置配置,但我似乎无法弄清楚例外的正确组合是什么。

这是我在远程机器上的防火墙配置的相关位。疯狂的部分是pfirewall.log 在它不起作用时没有列出任何丢弃- 但是同样,如果我关闭远程计算机上的防火墙,一切都会开始运行。

我会照顾这个线程,因为我知道你可能需要更多细节来诊断这个。

0 投票
3 回答
2061 浏览

web-services - RPC 伪装成 REST 是个坏主意吗?

我们的整个系统是围绕 REST 设计的,现在正在考虑如何在不使用 URL 中的动词的情况下将意图非常明确的 RPC 流程映射到 RESTful 资源。当内容列表在其他地方被修改时,我们的远程过程调用用于重建我们的搜索索引。

我们正在考虑做的是这样的:

发布 /index_updates

<indexUpdate><contentId>123</contentId></indexUpdate>

这本身没有问题,但气味是这个已创建的资源不返回新创建资源的 URL,例如 /index_updates/1234,然后我们可以使用 GET 访问它。

我们使用的索引引擎确实有一个日志机制,所以理论上我们可以返回一个指向 index_update 资源的 URL,以便允许 GET 检索资源,但老实说,我们对资源不感兴趣,因为这是只不过是伪装的 RPC。

所以我的问题是 RESTful 是否以结构或意图来表达。我觉得我所概述的结构是宁静的,但意图却不是。

有没有人有意见或建议?

谢谢,

克里斯

0 投票
3 回答
6188 浏览

gwt - 将 JPA 与我的 GWT 应用程序一起使用的最简单方法

我想创建一个使用 RPC 的简单 Google Web Toolkit 应用程序。对于持久性,我想使用 Java Persistence API 之类的东西。

这是否意味着我必须使用像 Glassfish 这样的应用服务器?还是我可以坚持使用简单的 Web 容器?

就具体库而言,我应该如何进行?顶联?休眠?...

0 投票
4 回答
817 浏览

c++ - 为什么在两个内部进程之间使用 Web 服务而不是 RPC?

谁能提出一个很好的理由来使用 Web 服务而不是 RPC(不是 xml-rpc)作为两个 C++ 进程之间的通信通道,这两个进程都将由同一个团队开发?注意:网络服务不保证按订单发货!

0 投票
8 回答
21500 浏览

web-services - 最佳 SOAP/REST/RPC Web API 的示例?你为什么喜欢他们?他们有什么问题?

在我的公司,我们开始涉足 Web API 以访问和更新我们的数据;最初是为合作伙伴提供的,但将来可能会向公众提供。目前 API 的外观(例如 SOAP、REST、RPC)是完全开放的,我们还没有做出任何决定,所以我对人们认为好的 Web API 的两个示例以及您认为的原因很感兴趣那。

我感兴趣的是来自使用不同语言的人的意见(我们可能会向使用多种平台的人提供 API,特别是包括 .NET、Java、ActionScript 和 JavaScript)关于您认为好的 Web API例子,你有很好的经验。

我想介绍的几点:

  1. 你更喜欢 SOAP 类型的服务还是 REST/RPC 风格的服务?我怀疑有平台支持(例如.NET、Java)的人会更喜欢SOAP,而使用没有平台支持的语言的人会更喜欢其他人,但我想验证这个假设。

  2. 您是否关心 API 是否实际上是 RESTful 或是否是普通的旧 RPC 样式 HTTP GET/POST?如果是这样,你为什么在乎?一个 API 是否正确地描述自己(即如果它是 RPC 风格就不要声称是 RESTful)比它是否实际上是两者之一更重要?

  3. 我们需要验证谁在使用该服务。我一直在研究 Amazon S3 身份验证,它使用公共标识符和私有令牌,用于将请求的参数散列为验证令牌(这也类似于 flickr)。您以前是否使用过这种类型的身份验证,您是如何使用它的?是否有任何您发现有问题的哈希算法(即您的平台不支持)?您希望在 HTTP 标头中还是在 URI 中发送散列?

  4. 应该如何处理版本控制?拥有一个类型子目录是一个好主意,/v1/以便可以在旁边添加未来的版本,还是你会做一些不同的事情,比如在请求有效负载或查询中使用版本?您期望支持您构建的 API 版本多长时间(即,如果引入 v2,您对 v1 生命周期的期望是多少)。

此外,任何其他意见和要点都会很有用。

我故意对我们正在实现的 API 的实际类型保持模糊,因为我正在寻找关于人们认为好的 API 和实现机制的一般指导,所以这篇文章及其答案将对更多人有用在将来。


注意:我已经搜索并找不到关于此的通用问题 - 它们似乎都特定于某种类型的 API - 但如果它是重复的,请告诉我。另外,如果它应该是社区 wiki(我认为人们应该得到答案,所以我没有做到这一点),那么请告诉我,我会改变它。

0 投票
3 回答
9968 浏览

networking - 为什么恰好一次语义不可行?

在 Erlang 寄希望于最好的 RPC 语义中,SUN RPC 至少一次和 Java RMI 最多一次但没有人有完全一次的语义。

为什么只有一次语义似乎不可行?

例如,如果客户端不断重新发送一个唯一标记的请求,直到收到回复,并且服务器跟踪所有处理的请求以便不重复请求。那不正是一次吗?

0 投票
7 回答
5104 浏览

c++ - 远程过程调用

有人知道在 Windows(非 .net)环境中进行远程过程调用的好方法吗?

我找不到太多关于如何做到这一点的信息,而且 msdn 只有 .net 版本。

.

编辑:

感谢您到目前为止的答案。我需要的是与同一台计算机上的服务进行通信,该服务会将进度报告发送回“客户端”。我对 rpc 感兴趣的原因是因为 vistas uac 以及服务如何与普通应用程序通信,除非它们使用 rpc 或管道。查看管道,它们似乎完全基于文本,我的印象是 rpc 可以传递强类型值。

我也会研究 DCOM。