我可以使用单独的对象来包含服务器引用吗?

时间:2011-03-25 15:33:35

标签: wcf msmq

我正在创建一个日志对象,它将获取发送给它的所有日志,并通过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.

1 个答案:

答案 0 :(得分: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>

这是在config的system.serviceModel部分。这是您收到的错误中引用的端点。此配置对于告诉您的客户去哪里与服务进行通信是必要的。