Remoting在Internet环境下的测试

PowerShell调用WSL实战:跨系统协同原理与故障修复 PowerShell与Linux并非原生兼容,而是通过Windows Subsystem for Linux(WSL)实现跨环境协同。其本质是PowerShell作为Windows原生命令外壳,通过进程调用触发WSL子系统,再由WSL2内核或WSL1翻译层执行Linux发行版中的命令,形成对象管道→系统调用→用户空间执行→标准输出回传的技术链路。这一机制带来显著技术价值:支持混合自动化、统一运维脚本、本地开发与生产环境对齐。典型应用场景包括CI/CD中并行执行Windows PowerShell任务与WSL 阅读详情

Remoting在Internet环境下的测试

                          朱二(2008.10,转载请保留作者)                          

 

分两种情况:单向通道和双向通道

在单向通道(Client->Server)情况下,分两种情况:
A、Server在内网,则需要在路由器上建立端口映射,同时在Server建立通道的时候,指定路由器IP地址
B、Server在公网,不需要任何设置

在双向通道(Client<->Server)情况下
Server和Client都具有双重角色,都可作为客户端和服务端,因此可等同对待。
无论哪一方在内网,都需要建立端口映射,并且在建立通道的时候,指定路由器IP地址。


相关代码:

跨路由访问内网远程服务端的问题
比如远程服务端的内网地址为192.168.0.8,端口为8888,在路由器地址为11.11.11.11,在路由器上添加端口映射,将路由器端口8888映射至192.168.0.8的端口8888
远程类型为:

  1. Public Class CRemotingLib
  2.     Inherits MarshalByRefObject
  3.     Public Function Test() As String
  4.         Return Now.ToString()
  5.     End Function
  6.     Public T As New CTest
  7. End Class
  8. Public Class CTest
  9.     Inherits MarshalByRefObject
  10.     Public Function Test() As String
  11.         Return Now.ToString()
  12.     End Function
  13. End Class

客户端代码为

  1.  Dim objectUrl As String = String.Format("tcp://{0}:{1}/CRemotingLib.rem", "11.11.11.11",8888)
  2.  Dim root As RemotingHttpTest.CRemotingLib = Activator.GetObject(GetType(RemotingHttpTest.CRemotingLib), objectUrl)
  3.  Console.WriteLine(root.Test())'正常
  4.  Console.WriteLine(root.T.Test())'异常,不能正常执行,调试发现,客户端执行次句时会连接192.168.0.8:8888

解决办法:

服务端设置信道属性时使用路由器的IP地址

  1. Dim cbin As BinaryClientFormatterSinkProvider = New BinaryClientFormatterSinkProvider()
  2. Dim sbin As BinaryServerFormatterSinkProvider = New BinaryServerFormatterSinkProvider()
  3. sbin.TypeFilterLevel = Runtime.Serialization.Formatters.TypeFilterLevel.Full
  4. Dim properties As IDictionary = New Hashtable()
  5. properties("port") = 9111
  6. properties("machineName") = "11.11.11.11" '注意这一句,Server将IP地址指定为路由器地址,这样客户端会在后继调用时使用此地址连接Server 
  7. Dim channel As TcpChannel = New TcpChannel(properties, cbin, sbin)
  8. ChannelServices.RegisterChannel(channel, False)
  9. RemotingConfiguration.RegisterWellKnownServiceType(GetType(RemotingHttpTest.CRemotingLib), "CRemotingLib.rem", WellKnownObjectMode.Singleton)

 

WSL+PowerShell深度集成:Windows与Linux共生开发工作流 WSL(Windows Subsystem for Linux)并非Linux模拟器,而是基于轻量虚拟化与内核接口重映射的原生兼容层;其核心原理是通过WSL2运行真实Linux内核,并借助PowerShell作为统一控制中枢实现跨系统进程管理、文件互通与网络协同。这种架构赋予开发者无需双系统或传统虚拟机即可获得完整Linux运行时的能力,技术价值在于零开销调用apt、systemd、Docker等原生工具,同时保留PowerShell脚本生态与Windows生产力。典型应用场景包括混合开发调试、CI/CD流 阅读详情

相关推荐

Windows系统TLS协议配置全攻略:从原理到实践的安全加固指南

传输层安全协议(TLS)是保障网络通信机密性与完整性的核心加密协议,其通过握手协商、密钥交换和对称加密等机制,为数据传输建立安全通道。随着TLS 1.0/1.1等旧版本协议被证实存在POODLE、BEAST等安全漏洞,升级至TLS 1.2/1.3已成为提升系统安全性的关键技术举措。这不仅能够有效防御中间人攻击与信息泄露风险,更是满足PCI DSS等安全合规要求的基石。在Windows服务器与客户端环境中,系统默认的Schannel组件、.NET Framework运行时及众多应用程序的TLS配置相互交织,任

weixin_34348805的博客 434

C#NetRemoting双向通信

闲来无事想玩玩双向通信,实现类似QQ的互发消息的功能。于是乎开始学习.Net Remoting. .Net Remoting 是由客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为客户端对象来实现通信的。也就是说对象是由服务端创建的。 先上代码 首先是ICommand库 using System; using System.Collections.Generic; using...

weixin_34061042的博客 566

Remoting穿越防火墙的例子

许多人反映Remoting不能穿越防火墙,不能用在公网应用中,效率很差,我相信MICROSOFT,我用了Remoting,在一个第三方的项目中,本人用Remoting在公网运行与内部运行同时进行,其实是我外网的数据传输是自己编码,效率还不错,内部不用讲了

Remoting 外网访问和内网访问解决方案

最近解决公司一个老平台的问题,该平台中使用了 Remoting 技术,现有的环境大致如下: 1、Remoting 服务和 Web 都是部署在局域网; 2、多台 Web 都是通过内网 IP 和端口来访问 Remoting 。 Remoting 服务端的代码如下: int serverPort = 10000; TcpServerChannel Channel =

jerry_player的博客 1249

Remoting双向通信V4.0.rar

Remoting双向通信V4.0.rar

remoting双向通信

remoting 双向通信 服务端可以向客户端广播发送消息,多个客户端可以收到,客户端也可以向服务端发送消息

跨域或者Internet访问Remoting[Remoting FAQ]

[Remoting FAQ]跨域或者Internet访问Remoting Version Date Creator

软件开发资料汇总 290

【UE5】【蓝图】 LevelSequence 动画播放与暂停

最近有些工作,在研究UE5 蓝图的LevelSequence,来制作一些简单动画。做个笔记,记录一下动画更换绑定actor的操作,以及动画播放后如何暂停和继续。

UE5开发备忘录 1万+

(原创)一步一步学Remoting之四:承载方式(2)

                                                       一步一步学Remoting之四:承载方式(2)  这里来说一下iis承载方式,顺便简单说一下remoting的通道和【复杂对象】中的遗留问题。首先明确一点:iis来承载的话只能是http通道方式的。我们来建立一个web项目,比如叫remoting,删除项目中的所有webform,

540

STM32标准库下载保姆级教程:2024最新官网免注册直接下载方法

本文提供2024年最新STM32标准库免注册下载方法,包括直接下载链接、GitHub镜像仓库和开发工具内置库三种途径。详细介绍了标准外设库的优势、配置步骤及常见问题解决方案,帮助开发者快速获取并应用这一重要开发资源。

weixin_29163581的博客 367

Waymo数据集里的隐藏彩蛋:5个激光雷达数据融合实战(附Python代码)

本文深入解析Waymo数据集中5个激光雷达的数据融合技术,提供Python实战代码,帮助开发者掌握多传感器协同工作的关键方法。通过时间同步、坐标转换和运动补偿等技术,实现高精度3D场景重建,提升自动驾驶系统的环境感知能力。

weixin_30399821的博客 81

企业IT必看:批量解决员工‘无Internet访问权限‘方案

在企业网络管理中,员工电脑突然出现'无Internet访问权限'的提示是常见问题。今天分享我们团队开发的网络修复工具,它能系统化解决这类问题,特别适合大规模企业环境使用。这套工具在我们公司2000+终端的环境中使用效果很好,平均故障解决时间从原来的45分钟缩短到5分钟以内。对于需要快速验证类似方案的朋友,推荐在。上体验基础版本,它的实时部署功能让测试过程变得特别顺畅,省去了搭建测试环境的麻烦。生成带时间戳的网络健康报告,便于事后分析。权限分级控制,普通用户只能修复本机。采用多线程处理提高批量操作效率。

CrystalwaveEagle34的博客 252

微信小程序审核避坑指南:巧用 wx.getAccountInfoSync 实现审核与线上环境无感切换

本文详细介绍了如何利用`wx.getAccountInfoSync`API实现微信小程序审核与线上环境的无感切换。通过环境识别技术和动态渲染架构设计,开发者可以优雅解决审核资质门槛问题,同时保持生产环境的完整用户体验。文章包含组件化实现、全局状态管理等实用方案,帮助开发者提升审核通过率。

weixin_30527423的博客 260

C#.Net环境下的缓存技术

转载:https://www.cnblogs.com/lvjy-net/p/8297679.html 一、缓存技术本节将介绍以下技术: 使用Asp.Net缓存; 使用Remoting Singleton缓存; 使用内存映射文件; 使用SQL Server缓存; 使用静态变量缓存; 使用Asp.net 会话状态(Session State); 使用Asp.net客户端缓存和状态; ...

weixin_30748995的博客 319

抖音小游戏(IAA)巨量引擎投放指南

摘要:本文详细介绍了在巨量引擎平台投放小游戏广告的完整流程,包括五个关键步骤:1)添加小游戏资产,填写ID等信息并等待审核;2)添加事件管理,配置激活和关键行为事件;3)通过橙子建站创建落地页,设置跳转链接;4)新建广告项目,选择小程序推广目标;5)完成广告创建。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 4489

手把手教你使用HFSS仿真高速差分过孔—上

高速数字电路设计中,信号完整性是一个非常重要的问题。为了使信号保持良好的传输特性,PCB板上的互联线一般都采用均匀传输线,使互联线保持特性阻抗一致性,减少信号反射。然而PCB板上的互联线很多时候避免不了换层的问题,这时候就必须使用过孔。过孔会导致阻抗不连续,进而造成反射,出现信号完整性问题。         当信号传输速率越高,信号前沿越短的时候,过孔引入的信号完整性问题越严重,需要对过孔进行优

a2447944219的博客 2万+

Talebook 正文查找替换(text-replace)书籍工具:从两段式预览到 EPUB/TXT 写回的完整实现剖析

**正文查找替换**是 Talebook 个人书库内置的「书籍工具」之一:它直接对书库中已有的 EPUB 与 TXT 正文执行**普通文本或正则**批量查找替换,结果可以**写回原书**,也可以**另存为一本新书**。本文以 [spec/插件/正文查找替换.md](https://link.gitcode.com/i/71faebaf4bdefeec150c0c9ef166d3e7) 为骨架,结合

gitblog_00606的博客 181

【论文速读】MLDT:基于开源大语言模型的复杂长时机器人任务规划多层次分解方法

—在数据驱动的人工智能技术领域,开源大语言模型(LLMs)在机器人任务规划中的应用是一个重要的里程碑。近期基于开源大语言模型的机器人任务规划方法通常利用大量的任务规划数据集来提升模型的规划能力。虽然这些方法展现出了一定的前景,但它们在处理复杂长时任务时存在困难,因为这类任务需要理解更多的上下文信息并生成更长的动作序列。本文提出多层次分解任务规划方法(MLDT)来解决这一局限性。该方法创新性地在目标级、任务级和动作级对任务进行分解,以应对复杂长时任务带来的挑战。

muyulingfengye的博客 1646

IDM激活脚本架构解析:Windows注册表锁定技术的实现方案

IDM Activation Script是一款基于注册表权限管理技术的开源工具,通过精密的Windows系统级操作实现Internet Download Manager试用期的长期锁定。该项目采用透明化的批处理脚本架构,为技术爱好者和中级用户提供安全可靠的IDM激活解决方案,彻底解决了传统破解方法的安全性和稳定性问题。 ## 技术架构深度解析 ### 注册表权限控制机制 IDM激活脚本的核

gitblog_00466的博客 403

新手必看!手把手教你如何在飞牛NAS上玩转Docker容器!(飞牛Nas(fnOS)如何创建Docke容器以及Compose部署项目)

新手必看!手把手教你如何在飞牛NAS上玩转Docker容器!(飞牛Nas(fnOS)如何创建Docke容器以及Compose部署项目)

XiaoqiangClub的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

.NET Framework 1.0到4.0演进中的真实技术契约与迁移避坑指南

.NET Framework 是 Windows 平台企业级应用的底层运行基石,其核心由 CLR 运行时、BCL 类库和配置模型共同构成。从 1.0 到 4.0 的演进并非简单功能叠加,而是经历了四次底层契约重写:泛型引入重构 JIT 行为、CAS 安全模型确立权限边界、WCF/WPF 等技术整合带来跨组件互操作约束,以及 CLR 4.0 的并行运行时机制。这些变更深刻影响着程序集加载、ViewState 序列化、WCF 配置兼容性与 GAC 版本共存等关键环节。尤其在遗留系统迁移中,.NET Framew

416

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 介绍下公司的产品-机房环境动力视频安防监控系统
下一篇: 如何解决DotNET中跨线程访问控件的问题
「已注销」
博客等级 码龄25年 93粉丝 101原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值