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

时间:2011-01-28 05:47:28

标签: visual-studio-2010

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

2 个答案:

答案 0 :(得分:8)

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

要尝试的3件事。

  1. 在本地下载WSDL并尝试从那里添加它。
  2. 从命令行创建代理,然后将其添加到项目中。以下是命令行util的更多信息: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

答案 1 :(得分:6)

这是一篇很老的帖子,但我想我会在我的解决方案上加两分钱。

我也有同样的问题。我发现我的程序集引用了未正确设置的地方。

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

解决方案:我正在引用包含我的合同的程序集。一旦我删除它,引用再次出现。然后我变得好奇,并想知道如果需要我可以引用该程序集而不会丢失我的服务引用。所以,我读了我在参考文献中删除的程序集,然后右键单击了服务引用并选择了“配置服务引用”。我选择了“在指定的引用程序集中重用类型”,然后只选择了系统程序集 - 即没有选择我的服务中使用的程序集并在我的测试中引用 - 我最初只删除了解决问题的程序集。每件事都有效。

总结:你必须稍微玩一下参考文献。这就是我在项目中修复问题的方法。