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

news/2025/2/12 17:39:56

这一问题一般出现在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等。

 

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

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1793970



https://dhexx.cn/news/show-3792356.html

相关文章

socket异步处理问题

由于一个项目要和第三方软件做接口,第三方软件是Unix的操作系统,所以用了Socket来传输数据。具体结构是这样的:本项目作为服务器端,第三方软件是客户端,并且有多个客户端。通常情况下,要开多个线程来处理多…

博客中断

为什么80%的码农都做不了架构师?>>> 自上一次写博客至今,已三月有余。 这段时间,确实是没有时间去读代码,写分析。 三个月前,我换工作了。 到了一个新单位,一个新的领域。 之前的累积差不多算是…

VSCode 在终端下如何使用 code . 的方式打开当前项目呢???

VSCode 在终端下如何使用 code . 的方式打开当前项目??? 废话不多说,直接上答案!!! 一、 Windows用户 在终端中进入要打开的文件夹,然后直接在终端中输入下面的命令即可打开&…

drdb 安装及配置

DRBD 安装及配置DRBD主:10.1.1.5 DRBD备:10.1.1.61.下载源码包:地址:www.drbd.org2.安装:2.1 安装依赖:yum install kernel-devel kernel-headers2.2.编译安装tar -zxf drbd-8.3.16.tar.gz ./configure --prefix/usr/l…

手把手教你使用 VisualSVN 搭建 SVN 服务器,走过路过千万不要错过啊!!!

使用 VisualSVN 搭建 SVN 服务器 一、下载 下载地址 二、安装 1. 双击进行安装,点击下一步。 2. 勾选上我接受,点击下一步。 3. 直接点击下一步!!! 4. 选择标准版。 5. 点击下一步!!&#x…

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

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

请听一个故事------百度员工离职总结:如何做个好员工

(本文转载于互联网:http://mp.weixin.qq.com/s?__bizMzA3MDMyODYyOA&mid200222421&idx1&snee08905ff5a69fb6600e30a9694795e6&3rdMzA3MDU4NTYzMw&scene6#rd) 2014年7月4日,我从百度离职了。 这是第一次&…

教你快速安装 TortoiseSVN 作为 SVN 客户端,跟我一步一步来安装吧!!!

使用 TortoiseSVN 作为 SVN 客户端 一、下载 下载地址 二、安装 1. 双击进行安装,点击下一步。 2. 点击安装。 3. 直接点击完成!!! 4. 经过上面的操作之后,点击开始菜单,在左侧会看到如下的图标&#x…

用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…

关于SVN---集中式版本管理系统,你想知道的都在这里啦!!!

SVN 简单介绍如下: SVN 全称 Apache Subversion,是一个开放源代码的集中式版本管理系统。 在 2000 年由 CollabNet 开发,现已发展成为 Apache 软件基金会的一个开源项目。 环境安装 鉴于文章篇幅的原因,有关环境安装的具体步骤…