首先说一下情况(为了表述方便,代码简化过):
1、原本有一个服务void GetUser(int age);,客户端调用wcf.GetUser(25);一切正常。
2、后来业务升级,需要加一个参数来决定却部分用户,服务改为void GetUser(int age,string school),但是,部分用户的客户端没有升级,用户老的客户端依然调用的是wcf.GetUser(25);,但是我们服务里面已经没有接受一个参数的GetUser了,竟然调用成功了,断点调试发现调用的是新的服务GetUser(int age,string school),只是默认school编程null了,这样导致好多客户端十分不稳定。
说明:wcf开了ASP的兼容模式.
wcf版本为.NET 4.5.1.
这个问题会引发很严重的bug问题,不知道是微软有意位置自动补的参数,还是说我有地方配置不对。