在Visual Studio 2010中添加服务引用的问题

7
我正在尝试使用Visual Studio 2010向一个我不拥有的服务添加服务引用。它没有将任何内容添加到app.config中,并且创建的Reference.cs文件仅包含两个类,即SerializableExpression和空的InterLinqType类。但是我没有可以实例化的可用客户端。当我关闭生成程序集中的“重用类型”选项时,它会在上述类中生成更多成员,但我仍然没有可用的客户端类,可以作为我的代理访问服务!使用Visual Studio 2008向同一服务添加服务引用完美运行!请帮忙。

请大家帮忙,非常感激...这个问题阻止了我将解决方案从VS2008迁移到VS2010。 - Shawn de Wet
1
你尝试过将该服务添加为Web引用而不是服务引用吗?如果您能提供更多关于此服务的输入,那将会很有帮助。 - Jemes
2个回答

8

我曾经在使用第三方服务时遇到过这个问题。

尝试以下三件事:

  1. 下载WSDL并在本地添加它。
  2. 从命令行创建代理,然后将其添加到您的项目中。这里有更多关于命令行工具的信息:http://msdn.microsoft.com/en-us/library/aa347733.aspx 请尝试使用可用的标志。注意/targetClientVersion标志。这是一个示例用法:

    svcutil /t:code /language=VB http://servicedomain/serviceurl /out:MyServiceProxy.vb /config:MyServiceProxy.config

  3. 验证您查看的WSDL实际上是有效的。我曾经遇到过无效字符、未关闭标记以及额外dtd文件的无效位置等问题,这些都会影响代理的创建。您可以尝试使用此处的验证器来查看是否失败:http://xmethods.net/ve2/Tools.po


6

这是一篇旧文章,但我想分享我的解决方案。

我也遇到了同样的问题。我发现我的程序集引用没有设置正确。

问题:我的测试容器引用了我的服务引用,但只显示了我的合同而没有显示我的服务方法。

解决方案:我引用了包含我的合同的程序集。当我移除它时,引用就重新出现了。然后我变得很好奇,并想知道如果需要,我是否可以在不失去服务引用的情况下引用该程序集。因此,我重新添加了我在引用中删除的那个程序集,然后右键单击服务引用,并选择“配置服务引用”。我选择了“在指定的引用程序集中重用类型”,然后只选择了系统程序集-即没有选择用于我的服务并在我的测试中引用的程序集-我最初为了解决问题而删除的程序集。一切都顺利进行。

总结:你需要调整一下引用。这就是我在项目中解决这个问题的方法。


抱歉打字错误了... :-) - Randy Kroeger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接