CityMaker7 開發常見異常記錄
阿新 • • 發佈:2018-11-01
一、資料來源連線失敗
異常描述:使用CityMaker Server服務進行查詢或其他操作時,如featureclas.search(null,true),會丟擲如下異常資訊:
捕捉到COMException
[FdeException] Code: -2017; Message: to connect datasource failure; NativeCode: 0;
資料來源連線建立方式:
public IDataSource FdbDataSource(IConnectionInfo connInfo) { IDataSourceFactory dsFac = new DataSourceFactory(); return dsFac.OpenDataSource(connInfo); }
問題解決:
經反覆測試和跟蹤發現,使用IDataSource獲取資料來源連線後是不能斷開的,除非要結束整個應用程式。在整個應用程式中都不能呼叫IDataSource.Close()方法斷開連線,即使通過IConnectionInfo重新構建連線也是行不通的,仍然會丟擲相應異常。
在使用後通過Marshal.RealseComObject方法釋放IDataSource物件是不會引發異常的,只要不呼叫Close就ok了。
if (ds != null)
{
Marshal.ReleaseComObject(ds);
ds = null;
}