WCF错误:由于目标计算机积极拒绝,无法连接

本文记录了一次使用C#进行WCF自承载服务调试的经历。作者在调试过程中遇到了“由于目标计算机积极拒绝,无法连接”的错误,并最终发现问题是由于using块中代码的生命周期管理不当导致的。

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

今天学习WCF时用C#重写测试例子时,发生错误:由于目标计算机积极拒绝,无法连接。找了N久,网上也没有找到实际的解决方法。查看netstat -an发现当自承载宿主运行时,没有侦听配置的端口。开始总以为是配置问题。到最后终于开始怀疑是程序的问题。

最后检查程序发现,

using (ServiceHost host = new ServiceHost(typeof(Artech.WcfServices.Services.CalculatorService  )))
            { 
                Console.WriteLine("Started! ");
                //启动承载
                host.Open();
                
            }
Console.ReadKey();

看似宿主在运行,其实,host已经过了 生存期被关闭了。由于console.readky在using外部,所以一直以为宿主是运行的。其实不然。

于是修改为:

using (ServiceHost host = new ServiceHost(typeof(Artech.WcfServices.Services.CalculatorService  )))
            { 
                Console.WriteLine("Started! ");
                //启动承载
                host.Open();
                Console.ReadKey();
            }

一切OK。这个小问题却耗了我半下午时间来查找。

这也说明学习不能只停留在表面,对于using的用法实际上是没有掌握。惭愧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值