2014-09-18 43 views
0

當我的RTD服務器啓動時,它會經過ServerStart和ConnectData調用,然後當數據開始到達時,它會調用ServerTerminate,從而關閉所有內容。 我添加了一個堆棧跟蹤轉儲但是這沒有告訴我任何有用的東西:Excel RTD服務器意外收到ServerTerminate

public void ServerTerminate() 
     { 
      Logger.DebugLog("TRACE: ServerTerminate {0}", new System.Diagnostics.StackTrace(true)); 

      timer_.Dispose(); 
      DataSource.Shutdown(); 
      topicIdMap_.Clear(); 
      fieldLookup_.Clear(); 
     } 

2014-09-18 11:22:12Z TRACE: ServerTerminate at Mike.RtdServer.ServerTerminate() in c:\Code\Mike\RtdServer.cs:line 347 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 

什麼會導致此調用ServerTerminate?

+0

如何發佈調用此方法'ServerTerminate()'的代碼也可能是他如何使用/調用定時器的問題..您是否使用任何鎖定機制?我認爲你需要展示更多代碼.. – MethodMan 2014-09-18 15:52:11

+0

這是一個RTD服務器:Excel調用ServerStart和ServerTerminate。我不直接調用它們中的任何一個 – user3902302 2014-09-18 21:11:47

+0

我沒有使用任何鎖,並且計時器是我爲了解決問題而添加的(顯然,如果您經常調用UpdateNotify(),Excel不喜歡它,所以我正在使用定時器每秒調整一次。 – user3902302 2014-09-18 21:51:22

回答

0

該問題是在ConnectData()調用期間訪問的未初始化列表。