ArcGIS二次開發和ArcGIS桌面應用中,許可是一個老生常談的問題。以前也小結過一些經驗。參考:
<a href="http://www.cnblogs.com/liweis/p/4185311.html">http://www.cnblogs.com/liweis/p/4185311.html</a>
直接來先看報錯的代碼:
這是很普通的連接配接Sql Server SDE的代碼操作,
經測試SDE連接配接參數正常,可在Open方法時,報錯"The Product License has not been initialized"(産品許可未初始化),程式是用代碼初始化許可的,運作綁定Desktop,産品許可類别是Advanced(進階版)
在相同的環境下,另外一套程式又可以,比較兩者的不同,似乎與MapControl控件存在某種關聯,經反複測試,得出以下結果:使用AO的sample作對比,隻要是先拖放MapControl控件,代碼就不會報許可問題(先拖放許可、或不拖MapControl都不行)。
暫時是解決了這個問題,我們姑且認為是10.4的bug,雖然沒有使用MapControl,但也拖放了這個控件(隐藏)。
我一直在想,既然它都能報這個錯,肯定不是什麼bug,而不是我們不知道錯在哪裡,經過一番測試,最終于不是通過許可方式解決它了。即在代碼初始化許可是除了添加Advanced許可,還添加了ArcServer許可。
<a href="http://gis.stackexchange.com/questions/2090/product-license-not-initialized-error-when-trying-to-open-an-sde-connection-in-a">http://gis.stackexchange.com/questions/2090/product-license-not-initialized-error-when-trying-to-open-an-sde-connection-in-a</a>
<a href="http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html">http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#/LicenseInitializer/004800000005000000/</a>