将web服务与ASP.NET一起使用时缺少dll
本文关键字:dll 一起 服务 web ASP NET | 更新日期: 2023-09-27 18:15:27
我有一个包含多个项目的解决方案,其中一个是网站。该网站引用了五项网络服务,这些服务正在我们自己的服务器上运行。当与VS 2010建立网站时,我得到以下错误:
正在验证网站App_WebReferences/VpService/(1(:生成(web(:Reference.svcmap:无法加载文件或程序集"Konzeptum.BL.Base,Version=2.6.0.0,Culture=neutral,PublicKeyToken=null"或其依赖项之一。系统找不到指定的文件。
产生此错误的服务在每次生成时都会更改。在我查看的任何机器上都找不到明显丢失的dll,甚至在运行服务的服务器上都不存在。然而,这些服务引用了一些API,这些API又引用了dllsKonzeptum.BL.Telerate.Provising、Konzeptum.VO.Base、Konzeptum.VO.Telerate.Profising。我的猜测是这些dll利用了丢失的<em〉Konzeptu.BL.Base>.
我可以很好地编译每个项目(服务、API等(,只是网站有这个问题。我已经尝试过更新服务引用,删除并重新添加它们,什么都没有。我在网上能找到的唯一解决方案(这种方法很有效(是为每个服务停用服务参考设置中的类型重用。我取消选中上面提到的三个dll,并重用所有其他类型。
然而,现在如果我建立网站,我会收到错误,即服务提供的类型和现有类型之间存在不明确的引用(例如System.IO中的FileInfo(,或者找不到某些数据类型的错误。然而,这些缺失的类型与Konzeptum的东西无关,它们是由服务本身定义的。幸运的是,这些错误在网站的构建过程中很晚才出现,所以大部分都是可用的。
这些问题的原因是什么?我该如何解决这些问题?谢谢你的帮助。
编辑:也许以前不清楚,但这个问题似乎只发生在我的机器上,另外两个开发人员在构建网站时没有任何问题(我们使用的是相同的tfs存储库(。运行实时系统的服务器没有任何问题。但是丢失的dll不在任何地方,所以我不能直接复制它。程序集绑定日志查看器也没有多大帮助,在调用程序集下Konzeptum.BL.Base的条目中,它只显示(未知(。
好吧,在搜索了我的机器和其他开发人员的机器之间的差异后,我发现了一个我认为根本不重要的差异。他们在我的电脑上安装了.NET 4.0版本,而不是4.5.1版本。因此,在卸载4.5.1并安装4.0后,问题就消失了。我现在可以成功地编译整个解决方案,没有任何错误。为什么——我不知道。解决方案中的项目都以4.0为目标,所以我认为在4.5.1下运行它们应该没有问题,但我想不是。我甚至浏览了4.0到4.5/44.5.1之间的更改列表,但我找不到任何与我的问题有关的内容。
感谢所有试图提供帮助的人。