2012-02-23 91 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