问题标签 [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 投票
1 回答
2443 浏览

c# - 异步远程调用

我们有一个在单独的 Windows 服务中运行的远程处理单例服务器(我们称她为 RemotingService)。RemotingService 的客户端是 ASP.NET 实例(很多很多)。

目前,客户端远程调用 RemotingService 并在服务 RemotingService 调用时阻塞。然而,远程服务变得足够复杂(有更多的 RPC 调用和复杂的算法),以至于 asp.net 工作线程被阻塞了很长时间(4-5 秒)。

根据这篇 msdn 文章,这样做不会很好地扩展,因为每个远程 RPC 都会阻塞一个 asp.net 工作线程。它建议切换到异步处理程序以释放 asp.net 工作线程。

异步处理程序的目的是在处理程序处理原始请求时释放 ASP.NET 线程池线程以服务其他请求。

这似乎很好,除了远程调用仍然从线程池中占用一个线程。这是与 asp.net 工作线程相同的线程池吗?

我应该如何将我的远程单例服务器变成一个异步系统,以便释放我的 asp.net 工作线程?

我可能错过了一些重要信息,如果您还需要知道什么来回答这个问题,请告诉我。

0 投票
7 回答
1870 浏览

soap - SOAP 现在是一种遗留技术吗?

人们是否还在编写SOAP 服务,或者它是一种已经过了其架构保质期的技术?人们正在回归二进制格式吗?

0 投票
1 回答
236 浏览

windows - RPC 异常“未导出接口”的含义/原因。

我们有一个使用 MS RPC 构建的相当标准的客户端/服务器应用程序。客户端和服务器都是用 C++ 实现的。客户端与服务器建立会话,然后在一段时间内重复调用它,最后关闭会话。

然而,周期性地,尤其是在高负载条件下,我们会看到 RPC 异常出现代码 1754: RPC_S_NOTHING_TO_EXPORT

这似乎发生在会话中间。用户登录一段时间,成功调用,然后其中一个调用莫名其妙地返回此错误。据我们所知,服务器没有收到任何出错的迹象——而且它肯定看不到客户端的调用。

错误代码似乎也具有永久性影响。让客户端重试连接也不起作用。但是,如果用户在同一客户端和服务器之间同时有多个用户会话处于活动状态,则其他连接不受影响。

本质上,我有两个问题:

  1. 有谁知道是什么RPC_S_NOTHING_TO_EXPORT意思?MSDN 文档简单地说:"No interfaces have been exported."...嗯?到目前为止,对于同一呼叫的许多实例,该会话都运行良好...

  2. 有没有人对如何识别真正的问题有任何想法?注意:捕获网络流量是我们宁愿避免的事情,如果可能的话,因为问题是零星的,我们可能会在遇到事件之前经历数 GB 的流量。

0 投票
2 回答
590 浏览

windows - 在哪里可以找到完整的 DCOM 文档?

我在一个应用程序上工作,它使用 DCOM 在本质上是几个对等点之间进行通信;在正常使用过程中,不同机器上的实例为彼此提供各种对象。从历史上看,为此我们使用了一些魔法咒语,其中主要是在每台机器上,用户必须登录到同名的帐户(请注意,这些是本地帐户;没有可用的域)。显然,这是我们可以改进的用户体验的一个方面。

我想更好地了解 DCOM 身份验证的工作原理,但是我很难从 MSDN 文档中为CoInitializeSecurity()CoSetProxyBlanket()等组装整个故事。对于 DCOM 操作是如何被接受或拒绝的,是否有任何详尽的解释?书籍、期刊、网络,任何格式都可以。

0 投票
2 回答
640 浏览

java - 将完整的 HTML 内容推回客户端时,如何避免在服务器端创建临时文件?

在 Tomcat 上运行的服务器端应用程序中,我根据从 Internet 下载的随机用户请求站点生成完整的 HTML 页面(带有标题)。客户端应用程序使用异步回调来请求处理特定网页。由于处理可能需要一段时间,我想通过轮询通知用户进度,因此回调。

在服务器端,检索网页后,对其进行处理并创建“增强”版本。然后这个版本必须返回给用户。将页面显示为客户端应用程序页面的一部分不是一种选择。

目前,服务器会生成一个临时文件并将链接发回给它。这显然是次优的。

下一个最好的解决方案是我可以用 inolves 创建一个缓存数据库,将 HTML 内容与其 md5-sum 或 sha1-id 一起存储,然后将链接发送回 servlet,并将 hash-ID 作为参数。servlet 然后从缓存数据库请求站点。

有没有更好的解决方案?如果没有,您会建议使用哪个数据库后端?我在考虑 SQLite。要解决的部分问题是:如何将页面推<html>送回</html>客户端?

0 投票
1 回答
3227 浏览

performance - 从网站性能的角度来看,DTO 的优缺点是什么?

从网站性能的角度来看,DTO 的优缺点是什么?(我说的是在与 Web 服务器不同的应用程序服务器上访问数据库的情况 - 并且 Web 服务器可以直接访问数据库。)

0 投票
2 回答
672 浏览

api - 您是否会将下一代火星探测器的控制 API 构建为 RESTful 而不是 RPC?

如果这几乎是一个“讨论”问题,请原谅我,但我真的很感激是/否的答案,并有适当的解释。

假设你必须为机器人设计和实现一个控制 API,比如下一代火星探测器。您是根据 RESTful 原则构建此 API,还是使用经典的 RPC,例如 XMLRPC?

我问这个是因为我必须做类似的事情,尽管“机器人”是虚拟机的集合。一位颇有说服力的工程师(一位著名的 REST 倡导者)敦促我让 API 成为 RESTful。我从未使用过 REST 原则,并且我正在努力了解它们如何适合设计低级进程间 API。REST 似乎融入了与可修改的数据存储库交互的主题,通常距离很远。我正在尝试做的事情更像是在密切控制一个机器人。我可以看出人们如何争辩说,抽象地说,机器人只是一个数据存储库——“PUT 左转”、“PUT 行进 100 米”、“获取外部温度”。但这似乎是一个相当做作的模型。我当然不会从缓存或代理中获得任何好处(“你好,喷气推进实验室?这是堪培拉的 Akamai co-lo。我们现在要接管 Rover,好吗?”)

那么,RESTful 架构在这里有用吗?即使交互如此狭窄,它仍然优于 RPC 吗?

0 投票
3 回答
577 浏览

language-agnostic - 设计问题:如何透明地访问 IPC 机制?

我想这样做(没有特定的语言):

或这个:

foo 实际上是一个通过 IPC 连接到我的程序的服务,为了访问它的方法和对象,某些层实际上通过网络发送和接收消息。

现在,我并不是真的在寻找 IPC 机制,因为有很多可供选择。它可能不是基于 XML,而是基于 s. th。像 Google 的协议缓冲区、dbus 或 CORBA。我不确定的是如何构建应用程序,以便我可以像访问任何对象一样访问 IPC。

换句话说,我怎样才能拥有透明地映射到进程边界的 OOP?

并不是说这是一个设计问题,我仍然在整体架构的一个相当高的水平上工作。所以我对这将使用哪种语言非常不可知。不过,C#、Java 和 Python 都可能会被使用。

0 投票
5 回答
56347 浏览

java - Simple java client code for Web Service - something to do with QName?

I am getting the following error when I get to the line that invokes a REALLY BASIC web service I have running on Tomcat/Axis.

Have I got something wrong with QName?- I can't even find any useful information about it.

My client code is below:

My web serivce code is really basic - just a simple class that returns your input string with a bit of concat text:

0 投票
0 回答
840 浏览

windows - Vista 中的 Microsoft Async RPC 崩溃

我正在开发一个程序,该程序可以在客户端和服务器在同一台机器上运行的情况下进行 RPC 调用。我希望客户端对服务器的调用超时,因为我们遇到了它在服务器上等待无响应的问题。

为了解决这个问题,我们使用了异步 RPC 调用,如果超时则取消它。

这在 XP 中运行良好,但现在我在 Vista 中发现崩溃,并且我有一个测试程序可以每次都重现这些崩溃(仅在 Vista 中,不在 XP 中)。这似乎是微软方面的一个错误。来自崩溃线程的调用堆栈不包括对我们代码的任何调用。以下是故障转储中的信息:

我想知道是否有人遇到过类似的问题并找到了解决方法?也许在这种情况下使用 RPC 以外的东西会更好?