我正在做一个 WPF 应用程序,它也是一个 WCF 服务器,我遇到的问题是我需要打开 ServiceHost 并侦听客户端的端口并在它启动后立即接受请求,但我遇到的问题是如果我在函数this.InitializeComponent()之后编写代码以在构造函数中打开主机host.open,则会失败并出现异常。如果我在一个按钮中打开主机并在应用程序启动后按下它,它可以正常工作。
为什么会这样,我该如何解决这个问题?
我正在使用 tcp.net 频道,我将它托管在应用程序中,我收到的异常是关于服务已经注册。
客户端的例外是:
内部异常消息:“现有连接被远程主机强制关闭”
错误号:10054
套接字错误:System.Net.Sockets.SocketError.ConnectionReset
谢谢
沃利
构造函数是:
public Window1()
{
this.InitializeComponent();
starthost();
}
private void starthost()
{
host = new ServiceHost(typeof (Window1),
new Uri[]{ new Uri("net.tcp://localhost:8000") });
host.AddServiceEndpoint(typeof(IGanador), new NetTcpBinding(), "Contador");
host.open(); //it fails with this line here but not in a button
}