来自asp.net客户端的WCF回调崩溃了ASP.net工作进程

时间:2013-12-06 11:14:42

标签: c# wcf

我有一个托管为托管应用程序的WCF服务。它充当WPF应用程序和ASP.net应用程序之间的中介。 WPF应用程序在Webbrowser控件中托管ASP.net应用程序。当用户尝试关闭webbrowser控件时,wpf应用程序调用wcf服务来检查Web应用程序是否正忙。 WCF对Web应用程序进行回调,该应用程序在启动时自行注册。但是,随着第二个Web应用程序工作进程崩溃,回调永远不会成功。 服务合同如下:

[ServiceContract(CallbackContract = typeof(IToolStatusNotifierServiceCallback))]
public interface IToolStatusNotifierService
{


    [OperationContract(IsOneWay = true)]
    void SubscribeToCanShutDown(string toolId);


    [OperationContract(IsOneWay = true)]
    void UnsubscribeToCanShutDown(string toolId);

    [OperationContract]
    void CanShutDownTool(string toolId);
}

回调合约如下:

 [ServiceContract]
public interface IToolStatusNotifierServiceCallback
{
    [OperationContract]
    ToolCloseResponse OnCanToolShutDown(string toolId);

}

当web应用程序启动时,它调用SubscribeToCanShutDown,当wpf应用程序需要查询Web应用程序时,它调用CanShutDownTool。在同一方法中,回调发生在Web应用程序中。但是回调只会导致工作进程崩溃。 这在开发机器上运行良好,但在部署机器上都失败了.net框架4 我已经尝试设置UseSynchronizationContext = false并使回调异步,但没有解决问题。 谢谢你的帮助