【问题标题】:adding a service reference in Visual Studio 2010 seems to not work在 Visual Studio 2010 中添加服务引用似乎不起作用
【发布时间】:2010-11-16 16:12:40
【问题描述】:

answer = 问题很简单,我们有一个带有函数的公共库。该服务是一个新功能,有人在这个公共领域尝试过,并且仍然存在于项目引用的那个中。 这导致项目有 2 个相同的命名空间(一个在公共 dll 中,一个在服务中)。

由于服务在 IIS 中的权限,我们在添加此引用时遇到了问题。我们解决了这个问题,但是,当再次添加引用时,似乎只添加了部分引用。它确实出现在服务列表中,但没有出现在应用配置中,并且无法使用(intellisense 找不到它,手动输入也不起作用)。

如果我们在不同的项目中尝试此操作,它确实可以完美添加,并且我们已尝试在读取它之前删除任何我们可以找到的关于引用的内容(子文件夹,在记事本中打开项目并删除那里的所有引用),但似乎没有任何效果。

当以类似的方式删除和读取此项目的不同服务时,我们可以将其添加到同一解决方案中的不同项目中,而不是在此项目中。

有人知道为什么会发生这种情况以及可能的解决方案吗?

编辑:当我们在同一个解决方案中重新创建项目并拖动所有类等时,我们可以根据需要添加和删除此引用。尽管这可以算作一个解决方案,但我实际上想知道为什么事情会像它们发生的那样发生,而不是在事情似乎陷入困境时重新创建项目。 Visual Studio 中是否有可能导致此问题的缓存或其他东西?

此外,有时需要更长的时间(或永远找不到)才能找到服务,而其他时间则需要不到 1 秒的时间。获得它的最佳方法似乎是停止并开始搜索。不确定它是否相关,但我的电脑和我们使用的另一台电脑之间似乎确实存在差异。

Edit2:我们也尝试过删除服务文件夹,重新添加服务会重新创建文件夹并添加此引用它不起作用。如果我们在删除文件夹后添加不同的服务,则该引用确实有效。之后添加我们要添加的引用不会使其工作。

Edit3:在另一个项目中,我可以将它添加一次,但删除引用然后重新添加它使其不再工作。对这个类似的引用,我可以在同一个项目中删除和重新添加任意多次,并且它会继续工作。在删除后重新添加并给出“找不到类型或命名空间”错误时,始终找不到此引用。

我们还尝试更改解决方案和项目 GUID,但仍然无法在项目中正确添加服务引用。)

**Edit4:在配置服务参考中关闭引用程序集中的重用类型时。Visual Studio 对话框将信息添加到 Reference.cs 页面,使该页面为空。取消选中此框会添加对该文件的所有引用并使服务引用工作。

但是我可以使用大部分参考,但我缺少入口点,这意味着我无法运行它。

这是我取消勾选以便进一步了解的对话框。

【问题讨论】:

  • 这可能不是同一个问题,但不妨看看这篇文章:bursjootech.blogspot.com/2008/06/…
  • 这不是问题,但让我走得很远,谢谢。
  • 我看到了区别:ERPFeedService/ERPFeedService.svc -> SNService/SNService.svc?wsdl
  • 也许您需要使用 ERPFeedService/ERPFeedService.svc?wsdl -> 您的 svc 可能会指定一个不存在/外部的 wsdl
  • 我们在另一台电脑上重新运行了该命令,并将其复制到第一个电脑上。一切正常,但更多时候使用该服务会导致服务器不匹配。多次重复该过程确实可以使其偶尔工作,但不像返回类型不匹配那样频繁。

标签: c# .net c#-4.0 wcf project


【解决方案1】:

当我使用服务引用时,我发现除了删除服务引用文件夹之外,我还必须删除 app.config 中的引用,如下所示:

<system.serviceModel>
    <bindings>
    a lot of lines...
    </client>
</system.serviceModel>

可能会有所帮助...
戈尔根

【讨论】:

  • 删除网络服务也会删除它。我已经完成了全面清理(suo、appconfig、服务文件夹),但它仍然没有正确添加服务。感谢您的意见。
【解决方案2】:

终于真正解决了这个问题。正如 Mike Cheel 在他的评论中所说。生病重新提供link

问题很简单,我们有一个带有函数的公共库。该服务是该公共领域中某人尝试过的一项新功能,并且仍然存在于项目引用的那个中。

这导致项目有 2 个相同的命名空间(一个在公共 dll 中,一个在服务中)。

因此,简单地说,构建一个新的通用 dll,将其添加到项目中,现在它可以完美运行了。

【讨论】:

    【解决方案3】:

    我将首先删除 Visual Studio 添加服务引用时生成的整个“服务引用”文件夹。

    你试过了吗?

    【讨论】:

    • 我们已经尝试过了,它确实会重新创建文件夹并填充它,但它不会使服务正常工作。
    • @Andy - 嗯.....尝试从磁盘中删除 .suo 文件(必须关闭解决方案),看看它是否有帮助,也许它会保存某种缓存。远射,但谁知道.. :)
    • 我尝试将 suo 文件连同所有其他文件一起删除,但它似乎并没有完全添加服务引用。有趣的是,虽然服务引用被添加到服务引用文件夹中,但不像我们第一次将引用正确添加到不同的项目时,它不在对象资源管理器中。
    • @Andy:很奇怪.. 那项服务有什么不同吗?也许是造成这种破坏的特殊数据类型?
    • 它是一项包含大量数据的服务,但除此之外还有 3 个枚举器和大量字符串/Int32,它并没有什么特别之处。同样,当我第一次将它添加到一个新项目时,它可以完美运行,只是不可替换或不可更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2014-01-29
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多