2012-02-23 95 views
0

Excel AddIn使用加载项express,VS2010,cometd.net会话到cometd服务器和Tom猫 在RTDInitialize事件处理程序中,我登录Tom Cat并连接到cometd服务器,我使用记录类证书的实例是loggedOn(将IsLoggedOn设置为true)和sessionID。加载项快速RTD刷新问题

在主题的RefreshData处理程序中,如果尚未注册,我将注册到cometd服务器。然后我会向汤姆猫订阅话题。现在,当用户从Excel中删除RTD功能时, DisconnectData处理程序被调用,其中我从cometd服务器断开连接,从Tom Cat注销,清除sessionID。 下一次,当用户再次输入RTD函数时,它将调用RTDInitialize事件处理程序,登录并连接,其中IsLoggoned设置为true,并更新sessionID。奇怪的是,在第二次登录后,在refreshData中,我检查凭据,IsLogged变为false,sessionID为空,就像第一次登出时一样。有人知道为什么不知道我是否清楚。谢谢

回答

1

我想你在测试中只有一个主题。我想你会在RTD服务器模块的类级别上存储对“类别凭证实例”的引用。而当您删除该主题时,RTD服务器模块将被销毁;这会杀死关于上一次连接的信息。如果您认为我误解了这个问题,请澄清。

+0

谢谢@Andrei。我在RTD服务器模块中只有一个主题实例,在模块中只有一个凭证实例。为了简化,我开始测试一个主题,如果我使用多个RTD函数进行测试,则会发生同样的问题。 (我的意思是MyRTD(paraA),MyRTD(paraB),你的意思是证书的实例不应该在服务器模块中,那么我应该在哪里放置它?每次启动RTD服务器模块时,我都会得到一个新的证书实例,谢谢 – toosensitive 2012-02-27 15:27:40

+0

我将类证书的实例从RTD服务器模块移到另一个类,然后运行!感谢,Andrei。 – toosensitive 2012-02-27 23:32:13