C# WPF客户端保持WCF会话处于活动状态
在上个月,我在WCF服务方面遇到了一些问题。通过在回调和服务中使用多并发模式,并通过将绑定更改为wsDualHttpBinding,可以解决这个问题 现在我有另一个问题:如果我关闭WPF客户端应用程序,我将无法启动另一个实例。它只是在后台运行,永远不会显示窗口。我必须重新启动服务才能再次启动WPF应用程序,当服务在服务器上运行时,这是不可行的 当应用程序关闭时,我肯定会使用以下代码关闭代理:C# WPF客户端保持WCF会话处于活动状态,c#,.net,wpf,wcf,C#,.net,Wpf,Wcf,在上个月,我在WCF服务方面遇到了一些问题。通过在回调和服务中使用多并发模式,并通过将绑定更改为wsDualHttpBinding,可以解决这个问题 现在我有另一个问题:如果我关闭WPF客户端应用程序,我将无法启动另一个实例。它只是在后台运行,永远不会显示窗口。我必须重新启动服务才能再次启动WPF应用程序,当服务在服务器上运行时,这是不可行的 当应用程序关闭时,我肯定会使用以下代码关闭代理: try { if (_proxy != null
try
{
if (_proxy != null)
{
// Calls some server cleanup.
_proxy.Disconnect();
_proxy.InnerDuplexChannel.Close();
_proxy.Close();
_proxy = null;
}
_context.ReleaseServiceInstance();
_context.Close();
}
catch (Exception ex)
{
if (_proxy != null)
{
_proxy.InnerDuplexChannel.Abort();
_proxy.Abort();
_proxy = null;
}
}
是什么导致WPF客户端使服务器会话/实例保持活动状态?有没有办法避免它,甚至强制关闭它?我必须重新启动服务才能再次启动WPF应用程序是什么意思…?您的自托管服务是否在启动时打开WPF应用程序?我希望不会,因为这在很多级别上都是错误的……WCF服务托管在Windows服务中,除非我重新启动它,否则WPF应用程序将挂起。然后我可以启动WPF应用程序。不,服务没有打开WPF应用程序,这太疯狂了。服务实例在哪里声明?你说的是一个名为Client的类的Dispose方法。该类的构造函数声明代理实例,该实例是从添加的服务引用自动生成的类型。