今天学习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的用法实际上是没有掌握。惭愧!