【问题标题】:Are Web Service References necessary in all project?所有项目都需要 Web 服务引用吗?
【发布时间】:2014-10-27 17:55:30
【问题描述】:

我目前在多个项目的解决方案中拥有一个 Web 服务。因为我不想在所有项目中添加服务引用才能使用它,所以我暂时创建了一个带有静态类的项目,名为“ServiceHelper”。该项目将是唯一具有服务引用的项目,并且助手将完成所有必要的请求。 Web 服务设置为公开(非内部)。

我的问题是,当我在我的助手中从另一个没有服务引用的项目中初始化我的 SoapClient 时,它会引发异常。但是当我将服务引用添加到另一个项目时,它就可以工作了。正常不正常?

抛出的异常翻译(因为它是用法语说的)是: 无法找到元素端点默认值是指 ServiceModel 客户端配置中的合同“ServiceReference.WebServiceSoap”部分。这可能是由于您的应用程序的配置文件未找到或在客户端元素中找到与此合同匹配的端点元素

我的配置文件中是否缺少某些内容?因为我没有改变提到的 2 个项目中的任何内容。

我如何在助手中初始化 SoapClient 的示例:

private static ServiceReference.WebServiceSoapClient _webService = new ServiceReference.WebServiceSoapClient();

【问题讨论】:

  • 这显然是第二个项目的 app.config 中缺少部分的问题。比较配置,我相信您会注意到缺少的内容。请记住,为了避免配置问题,这可能有助于使您的 ServiceHelper 独立于 app.config。如果您的“客户”和“服务”在您的项目中是本地的,您可以从代码构建所有必要的配置(绑定等)。
  • 我不知道您必须在客户端项目的配置文件中添加必要的部分,以便将其发送给助手。我已将我的帮助项目的配置文件中引用 Web 服务的内容复制到客户端项目之一中,而没有添加服务引用,现在它可以工作了。我肯定会尝试将其放入我的代码中,而不是不再这样做。谢谢!

标签: c# web-services wcf visual-studio-2012 projects-and-solutions


【解决方案1】:

继续@zverev.eugene,您不需要在每个项目中都使用引用,但项目中的 web.config 或 app.config 是从中检索连接和配置信息的地方。这是因为调用您的类库的应用程序提供所有配置信息(例如,如果您在类库中有数据访问层,则连接字符串将来自调用 DAL 的应用程序的 .config,而不是类库本身)。

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2015-07-08
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多