web 调用WCF 每次都要重新编译才能正常使用 终于解决了

  项目中不知从何时起出现了个奇怪的问题,每次运行web都要全部重新编译解决方案,否则单独编译web,总是会出现WCF 调用失败的情况(什么无法激活服务,什么协议对地址不可用啊,七七八八的问题),因为这个问题不影响项目的使用,就一直没去管,但每次改个配置文件都要重新编译整个解决方案,真的烦死,今天刚好有时间,下定决心要解决整个问题。

  调试的时候,发现了个很奇怪的问题,先单独编译WCF能正常访问,然后单独编译下web,再去访问WCF就会出错了,细看出现的错误,原来web和wcf共同引用的同一个类库项目导致的,仔细查看编译的输出信息,好吧,以前一直都把这个信息忽略掉了,原来是类库项目,和WCF项目同时引用了一个dll,但是却引用了不同的版本,WCF里面的版本要高于类库项目的,所以每次整个解决方案整体重新编译的时候会使用较高的版本也就是WCF里面的版本,但是单独编译的时候会引用类库项目中的较低版本的dll,WCF肯定就挂了。

  一直觉得这个问题很诡异,还在想是不是见鬼了,嘿嘿,原来编辑器早就警告过了,只是我们没有放在心上,看样子以后得改改这个光看错误不看警告的习惯,说不定啥时候就给自己的项目给埋了个大bug.

  PS:使用VS开发项目,添加程序引用的能用nuget的尽量使用nuget,不要随便升级版本,一定要升级,升级前检查解决方案中还有什么地方用到了同一个dll,是不是引用了同一个文件夹下的dll

  

原文地址:https://www.cnblogs.com/huanglin101/p/wcf.html