WCF 不接收消息 - 如何调试 WCF 服务?

标签 wcf wcf-binding

我有一个 WCF 主机,用于监听主题并处理传入消息。代码如下:

 using (ServiceHost host = new ServiceHost(MessagingServiceType))
 {
               host.Open();
}

MessagingServiceType 看起来像这样:

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
    public class MessagingServiceType : IMessagingService
    {
        /// <summary>
        /// service instance
        /// </summary>
        private readonly MessagingService service;

        /// <summary>
        /// Initializes a new instance of the <see cref="MessagingServiceType"/> class.
        /// </summary>
        public MessagingServiceType()
        {
            // creating new messaging service
            service = new Singleton<MessagingService>();
        }

        /// <summary>
        /// Sends the message.
        /// </summary>
        /// <param name="messageContent">Content of the message.</param>
        public void SendMessage(string messageContent)
        {
            Message msg = Message.CreateMessage(MessageVersion.Default, string.Empty, messageContent);

            service.MessageReceived(msg);
        }
    }

问题是,当我在单独的测试应用程序上运行它时,一切正常并且所有服务都会收到所有消息。但是,当我采用完全相同的代码并将其放入我的真实应用程序中时,没有收到任何消息。

我的问题很简单:我如何“调试”此服务以查看它出了什么问题以及为什么消息没有被处理?两者之间有什么可比较的吗?

谢谢

最佳答案

当然你的服务不会收到任何东西......只需看看你的代码:

 using (ServiceHost host = new ServiceHost(MessagingServiceType))
 {
               host.Open();
 }

当您到达“}”时到底会发生什么? “using”子句中的对象 - 您的 ServiceHost - 将被释放/处置! ==>不知不觉中,你的服务又消失了......

您需要执行以下操作:

ServiceHost host = new ServiceHost(MessagingServiceType);
host.Open();

Console.ReadLine();  // wait for a ENTER press
host.Close();

不需要大的调试......:-)

关于WCF 不接收消息 - 如何调试 WCF 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2058054/

相关文章:

c# - 适用于 Windows 10 的 AppFabric 支持

c# - 通过 Console/WinForms 中的 ServiceHost 托管 WCF 服务

.net - WebInvoke 属性可以被绑定(bind)配置替换吗

wcf - 使用二进制文件时丢失 WCF 故障异常详细信息

WPF 绑定(bind)到 Grid.ColumnSpan

wcf - 不同服务器上的 MSMQ 和多个 wcf 服务从同一队列读取

.net - 具有 TransportWithMessageCredential 安全模式的 basicHttpBinding 的等效自定义 WCF 绑定(bind)

.net - 未处理通过 MSMQ 的较大 WCF 消息

c# - 使用代码添加 WCF 服务行为

wcf - 以 RESTful 方式从 WCF 服务返回错误的最佳方法是什么?