WCF分布式开发常见错误(28):The requested upgrade is not supported by...
今天在调试WCF4.0 Routing 路由服务例子代码的时候,启动客户端测试WCF 路由服务,遇到这个错误。
因为网上资料很少,目前搜索不到任何中文资料。英文资料也十分少, google.com搜索的连接也被屏蔽了,不能访问。所以把这个问题的解决办法发出 来,共大家参考,希望对后来遇到类似错误的人一个参考。
【1】调试环境:
1)操作系统:Windows XP 专业版
2)IDE环境:Visual Studio 2010 Beta2
3)Framework: .NET Framework 4.0
【2】错误信息:
Error : The requested upgrade is not supported by 'net.tcp://localhost:9002/WCFServiceB'. This could be due to mismatched bindings (for example security enabled on the client and not on the server).
错误:服 'net.tcp://localhost:9002/WCFServiceB'不支持请求升级。这可 能是由于绑定不匹配导致的错误(例如客户端启用安全,而服务器没有。)。
【3】错误截图:
运行时客户端抛出的英文异常信息如下图所示:
【4】问题分析:
这个错误的原因,在异常信息里有部分提示:可能绑定不匹配导致的错误。
1)客户端和服务端安全模式不同,例如客户端启用安全,而服务端没有启用 安全;
2)客户端和服务端编码模式不同;导致无法匹配错误信息。
3)客户端和服务端SOAP版本不同。也可能导致问题。
4)客户端和服务端事务设置不同等等。
都可能导致这个错误。我们先来检查服务端和客户端的配置,发现服务端没 启用安全,而路由服务在对于客户端绑定的配置使用的是默认的设置,也就是启 用了传输安全模式。