IIS在服务器发布之后就会涉及到调用服务的问题,别人开发好的服务咱们只需在自己的WCF层调用即可。调用自己本地的服务是完全没有问题的,但从本地调用服务器上发布好的服务就会出现这样的异常:System.IO.FileLoadException:Couldnotloadfileorassembly'System.Core,Version=2.0.5.0,Culture=neutral,PublicKe
yToken=7cec85d7bea7798e,Retargetable=Yes。
一、原因
出现以上问题主要是由于程序引用的库引用了PCL(PortableClassLibrary)的库,该库可以让用户编写可以跨多个.netframework平台的托管库。简单理解为有些dll有支持PCL,所以reference的是2.0.5的版本,而通常在实际执行的时候会自动对应到正确的版本,测试机器没有事因为缺少KB2468871。可能是因为测试机器没有开对外的这个服务,所以没有跑WindowsUpdate才会导致这个KB没有被安装到。
二、解决方案
1、下载安装.NET4.0的更新程序就可以解决,查看了一下我自己的netframework版本如下:
2、服务器上的版本:
3、安装好了之后,即可解决此问题。