none
wcf服务竟然接受了少于自己的参数,为什么?这样好危险 RRS feed

  • 问题

  • 首先说一下情况(为了表述方便,代码简化过):

    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问题,不知道是微软有意位置自动补的参数,还是说我有地方配置不对。

    2015年6月12日 1:14

答案

全部回复