WPF 应用程序中的 WCF 通道工厂超时

WCF channel factory timeout in WPF Application

我在 C# 的 WPF 应用程序中托管 WCF 服务。我想从主机本身调用一些初始化函数,所以我使用的是通道工厂。当主机打开时,我可以从另一个应用程序调用 WCF 服务方法,但是当我 运行 主机中的以下代码时,我在 Test() 方法上超时。

host = new ServiceHost(typeof(SequencerService), new Uri(address));
host.Open();

var binding = new NetTcpBinding(SecurityMode.None);
EndpointAddress endpoint = new EndpointAddress("net.tcp://10.0.0.118:50111/SequencerService");
ChannelFactory<ISequencerService> myFactory = new ChannelFactory<ISequencerService>(binding, endpoint);
ISequencerService mService = myFactory.CreateChannel();

Console.WriteLine(mService.Test());

我被锁定在最后一行代码上。此外,如果我尝试在控制台应用程序中托管此代码,它工作正常。为什么在 WPF windows 应用程序中 运行ning 时会有所不同?

我刚刚找到了答案。似乎该服务必须托管在一个单独的线程中,而不是它被消耗的线程。托管我使用:

new Thread(()=>{
    host = new ServiceHost(typeof(SequencerService), new Uri(address));
    host.Open();
}.Start();