VS2015社区版运行WCF测试客户端崩溃问题求助
这种新旧VS版本下WCF测试客户端的差异问题我碰到过好几次,给你梳理几个大概率能解决的方向:
1. 排查WCF配置的兼容性问题
高版本VS自带的WCF测试客户端对旧版WCF配置的兼容性可能不如VS2013。你可以先简化web.config里的WCF配置,比如暂时换成最基础的basicHttpBinding,排除复杂绑定、行为配置里的旧属性导致的崩溃。
另外,高版本环境默认可能启用了TLS1.2,而你的服务如果还依赖旧版本TLS,也会导致加载失败。可以在web.config里强制指定TLS版本:
<system.net> <settings> <servicePointManager securityProtocol="Tls12" /> </settings> </system.net>
2. 查看Windows事件日志定位崩溃原因
既然还没进入源代码执行阶段,崩溃大概率出在加载环节。打开Windows事件查看器,进入「Windows日志 -> 应用程序」,找到对应的崩溃事件,里面会有异常类型、调用栈等详细信息,能帮你精准定位是依赖库不兼容还是配置错误。
3. 确认项目目标框架版本
检查高版本VS中项目的目标框架是否和VS2013里一致。VS2013默认支持到.NET Framework 4.5.1,而高版本VS可能自动把项目升级到了4.7.2等更高版本,部分WCF API在新版本框架中有变更,会导致测试客户端加载失败。试着把目标框架改回和VS2013相同的版本再测试。
4. 手动启动WCF测试客户端添加服务
不要直接设.svc为起始页运行,先单独启动Web应用(用IIS Express),确保在浏览器中打开.svc地址能正常显示WCF服务说明页面。然后手动打开WCF测试客户端(VS工具菜单里能找到,或者直接运行路径C:\Program Files (x86)\Microsoft Visual Studio\<你的VS版本>\Common7\IDE\WcfTestClient.exe),通过「添加服务」输入.svc的URL,看看能不能正常加载——这能排除VS自动启动测试客户端时的附加问题。
5. 重置IIS Express配置
高版本VS的IIS Express配置可能和VS2013有差异。可以备份并删除%userprofile%\Documents\IISExpress\config路径下的applicationhost.config文件,然后重新打开项目让VS自动生成新的配置,排除旧配置冲突的可能。
内容的提问来源于stack exchange,提问作者Carlos ABS

