当我尝试在连接/会话丢失后注册回调时,我收到此错误。
我仍然没有确切知道它何时发生,如果是在连接丢失之后,在服务器杀死会话之后或类似的东西之后,我试图以多种方式强制它但是无法准确地隔离它发生了。
调试Datasnap代码,我注意到它是由于安全令牌而引发的。
我的“猜测”是这种情况发生的方式:
无论如何,我在客户端收到连接错误并且我尝试再次注册回调后得到这个。
我的客户端代码如下所示:
CallbackChannelManager.CloseClientChannel; // Do I need to call this?
CallbackChannelManager.RegisterCallback(TDSTunnelSession.GenerateSessionId, TMyCallback.Create);
关于回调的Datasnap文档非常糟糕,我甚至没有开始,但是,我的问题是:
感谢。
答案 0 :(得分:1)
问题是由于我使用相同的 CallbackChannelManager.ManagerId 来重新注册回调。
在重新注册回调之前我开始生成一个新的ManagerId并且错误停止了,所以现在我的代码看起来像:
CallbackChannelManager.CloseClientChannel;
CallbackChannelManager.ManagerId := TDSTunnelSession.GenerateSessionId;
CallbackChannelManager.RegisterCallback(TDSTunnelSession.GenerateSessionId, TMyCallback.Create);