【问题标题】:Can I use a separate object to contain a Server Reference?我可以使用单独的对象来包含服务器引用吗?
【发布时间】:2011-03-26 00:08:18
【问题描述】:

我正在创建一个日志对象,它将接收发送给它的所有日志,并通过 WCF 和 MSMQ (netMsmqBinding) 将它们发送到我们的数据库。此日志记录对象具有对 LoggingHost 的服务引用(其中包含合同和所有强制性 WCF 内容)。

我有一个测试类,它由一个简单的 Web 表单组成,我在其中输入一条消息,然后将它发送到这个日志对象,然后发送到我们的数据库。我遇到的问题是,我能够让这个简单的功能正常工作的唯一方法是,如果这个测试类也有一个对同一个 LoggingHost 类的服务引用,这在某种程度上扼杀了这个日志对象的全部意义(我想要将所有 WCF 和 MSMQ 功能封装在此日志记录对象中,这样我就可以点击 Logger.Debug("message") 并负责将消息发送到我们的数据库)。

任何想法都会很棒。如果我需要澄清我想要完成的工作,请告诉我。


编辑

对不起,应该把我使用测试页面向记录器发送消息时出现的错误。如果测试页面没有服务参考,这就是我得到的错误。如果它确实有参考,那么一切都会正常运行。

Could not find default endpoint element that references contract 'ServerLogger.ILoggingService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

【问题讨论】:

  • 是什么要求您在测试应用中拥有服务参考?
  • 对不起,我编辑了帖子以放入错误消息。完全忘记包含最初的内容。

标签: wcf msmq


【解决方案1】:

您的日志记录对象的一些配置需要复制到您的测试应用的配置中。具体来说,在添加服务引用后,在日志对象的项目中,您现在应该有一个 app.config。你几乎需要整个

<system.ServiceModel>
    <!--service reference config info-->
</system.ServiceModel>

将该 app.config 的一部分复制到您的测试应用的 app.config 中。

编辑

更具体地说,有一个部分如下所示:

<client>
    <endpoint address="some URI" binding="some binding type"
        contract="contract for your service name="name" />
</client>

这在配置的 system.serviceModel 部分中。这是您收到的错误中引用的端点。这个配置是告诉你的客户去哪里与服务对话所必需的。

【讨论】:

  • 没问题 - 我最近刚遇到的东西,所以我记忆犹新。很高兴它有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多