C# 中软件运行“签名不正确”

博客讨论了在C#开发中遇到的'签名不正确'异常和WCF P2P客户端在Socket连接服务器时可能出现的崩溃问题。开发者尝试通过try-catch、AppDomain管理和超时设置来捕获和处理异常,但未能成功防止应用程序崩溃。建议包括检查命名空间一致性、使用异常处理策略和考虑多进程解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在软件中显示"正在加载主程序,请稍候......"后 报“签名不正确 ” ! 先谢谢!
补充 :在单步运时:报--》在 System.TypeLoadException 中第一次偶然出现的“mscorlib.dll”类型的异常,
请问一下这个问题怎么解决

我也遇到类似问题,但我的我因为namespace命名空间不同导致的,楼主可检查一下程序的命名空间是否一致

在做一个WCF项目时遇到一个P2P客户端程序问题,求解决方案。崩溃的原因应该是底层Socket连接服务器不响应,客户端超时引起的。
1、所有可能出错的地方都用了try+catch,这个错误无法捕获。
2、Application.ThreadException 也没有捕获到线程错误。
3、AppDomain.CurrentDomain.UnhandledException 也没有捕获到这个错误。
4、新开AppDomain动态加载dll,也未能逃脱整个应用程序崩溃的命运。
求解决方案,只要能够屏蔽该异常就行,也就是不造成整个应用程序崩溃;要求不能用多进程的解决方案。

但似乎没有什么结论,外部非托管组件的异常似乎无法捕获。
4、新开AppDomain动态加载dll,也未能逃脱整个应用程序崩溃的命运。
请问如何设置AppDomain,可以使其崩溃不影响主程序?

如果是我,没时间想那么多方法的话,弄个监视的狗同步启动,如果发现这个进程出错退出了,就重新启动一次。

这个东西很明显的是网络资源被占用,发送的命令不能及时的响应。
你可以用Waitforsingleobject(envent,timer)等待一段时间不执行后就返回了。或者进入下一次循环执行。
否则你的命令没发来一些操作没完成就执行了后面步骤必然会导致报错。

帮顶一下,补充一个,利用CER、临界区以及可靠性契约,可以强制某些情况下不抛出异常,或提前预测到异常,虽然解决不了LZ的问题,但放到这个帖子里,也许以后别的同志会碰到,可以尝试一下!

WCF的P2P是异步的,不存在等待这个问题。

多进程是一种备用的方案,迫不得已的时候可能会用它。现在就是希望找到一种单进程能解决问题的方案。

就是new了一个AppDomainSetup,然后AppDomain.CreateDomain,应该是个单独的程序域吧。

大概就是这些东西,内容不多,主要是针对这类异步异常的
崩溃的原因应该是底层Socket连接服务器不响应,客户端超时引起的。如果确定是这种问题,我一个做WCF的朋友似乎碰到过这种问题,好像听他说最终搞了个伪响应什么的达到延时的目的来防止崩溃,具体怎么搞的我也不太清楚

兄弟说的可是增加超时延时,这个试过,可以缓解崩溃,但是没办法杜绝崩溃。
比如说以前开50个客户端同时连服务器,不到10秒多数客户端都会崩溃。
修改延时超过1分钟后,90个客户端也就崩溃十来个,但是设置再大也还是会崩溃。
麻烦兄弟问一下你那位朋友是怎么解决的,谢谢你。

捕获到了又如何? 多数时候恢复一个异常的成本高到无法承受。
首先看样子你们的解决方案不可能对程序大规模改动。那么一下3种方式试试吧。
建议楼主对非托管资源建个测试项目。多试几个临界值。

不是系统失去响应,退出是操作系统关闭的,可以确认异常不是.net层产生的,调试崩溃也得不到详细信息。
所谓的第三方组件是WCF对操作系统底层的调用,在调用之前都有检查状态是否可用。
我现在的测试是在一台客户机上同时开几十个客户端进程,CPU利用率很低,内存虽然用得多但绝不会达到虚拟内存不足的情况,至于socket句柄数量应该不会造成崩溃吧。
需要说明的是真实环境中一台客户机只会开一个客户端进程,因为测试环境存在崩溃的情况,所以害怕真实环境也出现崩溃问题。
来源:足球直播

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值