我有一个VS2010(RTM)解决方案,其中包含:
WCF服务项目
控制台WCF客户端项目
DataContracts和成员的类项目
一些简单类的类项目
我在控制台客户端项目中成功添加了服务引用并运行了客户端。然后我做了一个很长的开发循环,反复修改服务,然后更新控制台服务引用。然后,我使用引用和app.config更改了项目的命名空间和程序集名称以及.cs。我当然错过了一些因为它不会构建的东西所以我最终删除了项目引用和服务引用,成功清理和构建。
然后,我尝试再次添加服务引用,它发现了它,但是在确定时将“对象引用未设置为对象的实例”。修复以下答案......
答案 0 :(得分:6)
发布我自己的修复程序,因为我在其他地方找不到它:
Stackoverflow'ing / Google搜索没有让我到任何地方,所以我最终在记事本中打开了解决方案文件,发现引用我的控制台项目的条目对WCF服务项目有一个项目依赖。
删除ProjectSection后,我能够添加服务引用并重新开始工作。
在尝试重现问题时,将服务引用添加到项目会添加服务项目依赖项,但删除服务引用则不会。我认为更改命名空间是罪魁祸首,因为它找不到依赖引用?
答案 1 :(得分:6)
如果您尝试向项目添加服务引用,但在同一项目中存在已卸载的另一个项目的现有服务引用,则会出现此问题。例如,您可以使用以下步骤重现:
虽然这不应该发生,因为服务是独立的,但修复是在添加对Service2的引用时重新加载Service1项目。
答案 2 :(得分:2)
服务和客户端之间存在项目依赖关系。 右键点击消费者项目 - >项目依赖; 取消选中Consumer和Service之间的依赖关系。 (这将删除消费者的任何内部对象或引用)
重试:添加服务参考。
答案 3 :(得分:1)
对于遇到此问题并且没有帮助上述方法的任何人: 看看UI部分是否有一些数据绑定(在我的例子中,它是silverlight客户端上的数据网格控件)ymmv 此外,如果您有一个服务客户端,那么这种形式的绑定可能以_Completed方法的形式出现,仔细查看它是否缺少应该存在的一些数据/参数。 HTH
答案 4 :(得分:1)
从“添加/删除程序”中卸载所有版本的Silver light SDK(Silverlight,Silverlight3等)和Silverlight工具。重新安装应该解决问题的Silverlight工具。
答案 5 :(得分:0)
删除并重新添加服务引用。简单但对我有用。
导致"对象引用"错误只是将服务引用端点URL从本地更改为我的开发服务器。除了这一次之前从未遇到过这个问题。
答案 6 :(得分:0)
我在vs17中的问题(对象引用未设置为对象的实例):
所以,我在vs2015中重命名了Project,但是没有重命名项目所在的文件夹。当我在vs2017中打开它并尝试添加WCF服务时,单击OK后我会得到对象引用未找到。
我的修复:
因此,我从解决方案中卸载了项目文件并重命名了项目文件夹以匹配项目文件,将项目重新加载到vs2017中的解决方案中,现在我能够“添加WCF服务”了!