【问题标题】:WCF channel factory timeout in WPF ApplicationWPF 应用程序中的 WCF 通道工厂超时
【发布时间】:2017-07-06 15:10:40
【问题描述】:

我在 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 应用程序中运行它时会有所不同?

【问题讨论】:

  • Test() 中包含正在发生的事情可能会有所帮助。
  • 现在测试只返回“Hello”字符串

标签: c# wpf wcf service host


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多