问题标签 [remoting]
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.
.net - .NET 远程处理速度和 VPN
我正在开发一个使用 .NET Remoting 在客户端应用程序和对象服务器之间进行通信的项目。对于开发,客户端、服务器和 MSSQL 数据库都在我的本地开发机器上运行。
当我在办公室工作时,响应能力还不错。
但是,当我在家工作时,速度明显变慢。如果我断开与 VPN 的连接,它会加速(我相信,但也许这只是一厢情愿)。如果我完全关闭我的无线连接,它会立即加速到全油门。
我的假设是,远程流量正在通过某个点进行路由,这会减慢所有速度,尽管是我的家庭路由器和/或 VPN。
有没有人知道如何强制远程流量保持完全本地化?
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 工作线程?
我可能错过了一些重要信息,如果您还需要知道什么来回答这个问题,请告诉我。
.net - 远程服务器自动发现。广播与否?
我有一个与.Net 远程通信的客户端/服务器应用程序。我需要我的客户能够在网络上找到服务器,而无需客户端配置。
据我所知,远程处理中不支持发现。我准备实现一个 UDP 解决方案,客户端将能够通过广播消息找到服务器。
在我继续之前,我想听听集体智慧。这是最好的方法吗?还有其他建议吗?
c# - 连接到 .NET 远程服务器对象的最简单方法是什么
鉴于我的客户端代码知道远程处理对象所需的一切,那么连接到它的最简单方法是什么?
这就是我目前正在做的事情:
.net - 如何测量用于 .NET 远程处理的 IP 端口的输入/输出字节数?
我正在使用 .NET 远程处理将定期状态更新从 Windows 服务检索到“控制器”应用程序中,该应用程序用于显示有关服务正在执行的一些实时统计信息。
由此产生的网络流量是巨大的 - 是更新数据大小的许多倍 - 很明显,我以非常低效的方式错误地实现了远程处理代码。作为修复它的第一步,我需要监控服务用于与控制器通信的 IP 端口上的流量,以便我可以建立基线,然后验证修复。
谁能推荐我可以用来获取流量统计信息的实用程序和/或编码技术?端口的“发送字节数”就足够了。
c# - 使用 .NET Remoting 时如何捕获未处理的异常
我想在服务器上的远程对象中捕获所有未处理的异常并将它们记录在那里,然后再将它们转换为一些自定义异常,以便特定异常不会跨越客户端/服务器边界。
我想我必须使用自定义频道同步,但是任何人都可以确认这一点和/或有任何其他建议吗?
c# - .NET IPC 没有服务中介
我有两个使用 .NET 程序集作为插件的不相关进程。但是,任何一个进程都可以随时启动/停止。我不能依赖特定进程作为服务器。事实上,其中一个进程可能有多个副本在运行,但只有一个副本在运行。
我最初根据这篇文章实施了一个解决方案。但是,这需要实现服务器的服务器在客户端之前运行。
当客户端首先运行时,向服务器实施某种通知的最佳方式是什么?
c# - 有没有人使用 Hessian 二进制远程协议来桥接使用 Java 和 .NET 的应用程序?
Hessian是一种自定义二进制序列化协议(我认为它是开源的),它构成了二进制跨平台远程处理框架的基础。我想知道这里是否有人使用过它,如果是这样,我们可以从一种将 Java 应用程序与 C# 应用程序连接起来的解决方案获得什么样的性能。(假设我们正在序列化简单类,可能是简单类的数组、列表、字典。)
c# - 在 C# 中通过远程处理获取外部 IP 地址
我需要找出运行 C# 应用程序的计算机的外部IP。
在应用程序中,我有一个到服务器的连接(通过 .NET 远程处理)。有没有好办法在服务器端获取客户端的地址?
(我已经编辑了这个问题,以便更清楚一点。我向所有尽力回答这个问题的好心人道歉,当时我可能有点太含糊了)
解决方案:
我找到了一种对我很有效的方法。通过在我可以访问 CommonTransportKeys.IPAddress 的地方实现自定义 IServerChannelSinkProvider 和 IServerChannelSink,很容易在 CallContext 上添加客户端 IP。
然后稍后(当我收到来自客户端的请求时)只需像这样从 CallContext 获取 IP。
我现在可以将 IP 发送回客户端。