.Net Remoting中Remote Server的Port占用/释放问题

news/2024/6/1 17:13:50

这一问题一般出现在Console application/Windows Service承载Remote Objects时,要求Remote Server指定特定portIIS在承载Remote Objects并不需要指定特定port,因此一般不会出现SocketException异常信息。

 

1. 启动承载Remote ObjectsConsole application,发现指定的port状态为:LISTENING

显然Remote Server开始监听该port,可以接受Client端的请求。

 

2. 在关闭承载Remote ObjectsConsole application后,发现指定的port状态为:TIME_WAIT

 

如果现在启动该Console application,就会抛出如下异常:

An unhandled exception of type 'System.Runtime.Remoting.RemotingException' occurred in mscorlib.dll

 

Additional information: Remoting configuration failed with the exception System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port)

is normally permitted

 

SocketException异常:每一个socket address (protocol/network address/port)只能有一个使用。

 

3. 个人观点

关于TIME_WAIT状态,这是windows系统设计的,防止来自旧的连接(old connection)的剩余packets干扰新的连接(new connection)。因此,默认会等待4分钟,让那些剩余的packets丢弃掉。

 

因此,不要试图去解决这一问题。等待4分钟左右的时间,确认该port确定已释放,再启动Remote Server,如Console application/Windows Service等。

 

不同观点或意见,请发表评论或指出。谢谢。

 



http://www.niftyadmin.cn/n/3652865.html

相关文章

LVM逻辑卷管理和磁盘配额

LVM逻辑卷管理和磁盘配额一. LVM逻辑卷管理1. 逻辑卷管理2. LVM机制的基本概念2.1 LVM主要命令2.2 LVM应用实例2.3 扩容二. 磁盘配额1. 磁盘配额基本2. 命令3. 查看磁盘容量和文件数的报告4. 磁盘配额步骤及验证一. LVM逻辑卷管理 1. 逻辑卷管理 ●能够在保持现有数据不变的情…

信道、接收器、接收链和信道接受提供程序

Channel, Sink, Sink Chain and Channel Sink Provider为了扩展.Net Remoting,定制接收器(Sink)和信道接受提供程序(Channel Sink Provider),改变.Net Remoting的缺省行为,需要先了解.Net Remot…

Linux操作系统引导过程及启动类故障,服务控制,运行级别和优化启动过程

Linux操作系统引导过程及启动类故障,服务控制,运行级别和优化启动过程一. Linux操作系统引导过程1.开机自检2.MBR引导3. GRUB菜单4. 加载Linux 内核5. init 进程初始化5.1 系统初始化进程5.2 Systemd 单元类型5.3 运行级别所对应的Systemd目标二. 排除启…

用AS3调用摄像头(附源代码下载)

用as3调用摄像头,代码如下:package { import flash.display.Sprite; import flash.text.*; import flash.media.Camera; import flash.events.StatusEvent; import flash.events.ActivityEvent; import flash.media.Video; public class CameraEx extend…

Linux之进程信息及定时任务设置

进程信息及定时任务设置一. 查看进程1. 程序和进程的关系2. 查看进程信息2.1 ps 查看静态的进程统计信息2.2 top 查看动态的进程排名信息2.3 pgrep 命令根据特定条件查询进程 PID 信息2.4 pstree 查看进程数二. 控制进程三. at 一次性任务设置四. crontab 周期性任务设置1. cro…

在无线J2ME设备上实现http传输

随着越来越多手提电话和个人数字助理开始融入到信息高速公路之上,从移动设备上访问Web站点变得越来越重要。Java开创了消费设备中小型的储存容量的先河,它是用于开发手机、传呼机及其他微型设备应用程序的理想语言。  在本文中,我们将学习如…

Linux之系统安全管理

Linux 之系统安全管理一. 账号安全控制1. 系统账号清理2. 密码安全控制3. 命令历史限制4. 终端自动注销5. 使用 su 命令切换用户5.1 su 切换用途5.2 密码验证5.3 限制使用 su 命令的用户二. PAM安全认证1. su命令的安全隐患2. PAM认证原理3. PAM安全认证流程三. 使用sudo机制提…