VS2008调用VS2012的WCF服务的方式和遇到的问题
1 用添加服务引用的懒方式
2 用http请求方式
3 客户端自己定义一个Contract,跟服务端的一样(可以只写要使用的方法,不用全部写完)。
由于规范要求,前两种都不能用,后面根据同事的描述,产生的第三种方式。(差点我们就升版本了,好震撼的举动,降版本不是一个好的办法)
但是命名空间+类名必须跟服务端的一样,这是为什么呢?因为要根据这个去找地址。
为什么方法名也必须有呢?
因为这实际上是代理的方式在调用。
4 遇到的问题
开发阶段都没有遇到什么问题,以为一切OK,结果提测不过?
一直报:类型“***********”在未被引用的程序集中定义。必须添加对程序集“****************”的引用。
我以为是dll不匹配的问题,丢了很多次dll,还是不过。
我注意看了一下,发现不管我怎么丢dll,更改的dll都有一大片,于是我重新牵了一个分支,只丢我要丢的dll。
还是提测编译不过。
我已经把服务器上的代码拿出来看,是编译不过,但是我把dll丢进行之后又对了。
我又想到一招,把服务器上的dll,考到本地,再把变更dll丢进去,提测,好吧.....还是不过。
最后一招,找管理提测的同学!
但同时,我就在想这个Contract,跟我这个服务的Contract有什么不同呢?我把新增Contract的所有 类似这种标注[OperationContract]全部对比一遍,发现是对的。最后我就想实在不行,我就把新增的Contract拷贝到原有服务Contract的项目下面,引用共同的东西,肯定没有问题,这一引用,我就发现问题了。一个是引用:****************.WCF;,另一个是引用:******************.Wcf;我去,居然能编译通过,而且我本地测试这么久竟然完全没有问题!
把引用的命名空间改一下,对了!
5 思考
按照常理来讲,如果说本地能编译通过,那么提测过去的代码也能编译通过,但是结果没有,原因是两份代码引用dll部分根本不一样,那么这就涉及到提测的时候dll收集的问题!有空把源代码拉下来看看!另外一个问题是,怎么两个dll中有同样的东西,这个也可以看看!
出处:http://www.cnblogs.com/BestNow/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?