加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.NET 4下的偶发Windows服务失败,然后在重新启动尝试时阻塞端口

发布时间:2020-12-14 02:21:48 所属栏目:Windows 来源:网络整理
导读:大约每天一次,我在关键任务交易服务中收到以下错误. Source: .NET Runtime,Type: Error,Application: Application.exe, Framework Version: v4.0.30319,Description: The process was terminated due to an internal error in the .NET Runtime at IP 000006
大约每天一次,我在关键任务交易服务中收到以下错误.

Source: .NET Runtime,Type: Error,Application: Application.exe,
Framework Version: v4.0.30319,Description: The process was terminated
due to an internal error in the .NET Runtime at IP 000006447F281DBD
(000006447F100000) with exit code 80131506.

在收到此错误并尝试重新启动应用程序后,似乎我们被绑定的套接字尚未从先前(失败)执行中清除,因为我们在尝试在启动期间绑定套接字时收到System.ServiceModel.AddressAlreadyInUseException.

我有两个问题.

>我们需要了解为什么会出现第一个错误,您是否有错误代码中的任何信息等.
>我们需要一种能够在错误发生后成功绑定的方法.有关如何在下次启动时清理端口的任何建议.

应用程序运行的环境是

> Microsoft Windows Server 2003 R2
>标准x64版
> Service Pack 2
> 2x 4Core Intel CPU X5365 @ 3.00GHz
> 16.0 GB的RAM.

解决方法

这是早期.NET时代的ExecutionEngineException.你无法在.NET 4.0中捕获它,AppDomain.UnhandledException将无法运行.

此异常的通用诊断是垃圾收集堆的完整性受到损害.典型的触发器是在缓冲区末尾写入的非托管代码.或者它可以是环境,病毒扫描仪有诀窍导致这个问题.尤其是Symantec安全产品.鉴于您的服务终止时端口未自动关闭,您的情况可能会有所不同.从技术上讲,CLR中的错误也可能导致此问题.

我建议:

>检查您的源代码库并彻底检查所使用的任何非托管代码.>联系第三方组件的供应商,询问已知的堆损坏问题.>查看运行此代码的计算机的配置.尽可能禁用加载项,暂时禁用运行服务不是绝对必要的任何内容>将项目重新定位到.NET 3.5 SP1框架.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读