如何將.Net SOE遷移升級到10.1上
將.Net SOE升級到10.1需要你將大部分已經存在的程式碼拷貝到Visual Studio的REST模板或者SOAP模板中。之所以要這麼做是因為10.1的模板包含了打包的邏輯,可以將SOE打包成一個.soe檔案。這個檔案是在10.1中新增的,並且提供了將SOE一步部署到ArcGIS for Server上的能力。當SOE專案被建立的時候,這個.soe檔案也隨之被建立。
10.1模板的另一個優勢是需要的引用已經指向了主要的互動式程式集,這些程式集封裝在ArcObjects SDK中。如果你的專案需要其他的引用而不是模板中提供的這些,那麼你需要手動新增這些引用。
在10.0或更早的版本中建立的SOE依賴於ArcGIS Server Local(分散式元件物件模型) Connections。但是在ArcGIS for Server10.1中不能使用了。這些SOE需要作為REST或SOAP Web服務進行程式碼重構。
將SOE從10.0升級到10.1的步驟如下:
1.如果這個SOE以前在你的機器上註冊過,那麼用命令列(比如regasm <path to DLL> /codebase /u)進行反註冊。
2.開啟Visual Studio 2010,單擊 檔案->新建->專案。
3.在安裝的模板樹中,展開Visual C#->ArcGIS->Server Object Extensions。
4.在”新建專案“對話方塊的最頂部選擇.Net Framework版本為3.5。
5.選擇REST或SOAP模板,寫入SOE的名稱,選擇儲存的路徑,然後單擊確定按鈕。
6.增加模板中沒有的引用或資料夾。
7.在模板中修改.Net attribute SOE以使其包含能力(capabilities)、描述、顯示名稱、屬性以及你的SOE支援的Web架構。
在10.1之前,這些值是在SOE的註冊程式碼中設定的。一個C#的SOE如下所示:
[ServerObjectExtension("MapServer", AllCapabilities = "GetCommonInfo;GetSecretInfo",
DefaultCapabilities = "GetCommonInfo", Description =
"An example SOE for the help system", DisplayName = "My Sample SOE", Properties
= "PropertyA=500;PropertyB=Cities", SupportsREST = true, SupportsSOAP = false)]
8.從你10.1版本之前的SOE中拷貝整個類的程式碼(出去類的宣告)並替換模板中相應的程式碼。10.1中SOEs沒有從ServicedComponent中繼承,也不需要引入1System.EnterpriseServices,除此之外,0.1中引用類的程式碼與10.0中相同。如果你想完整的拷貝和貼上,你應該移除這些內容。你可以使用10.1的模板和示例作為一個導引。
當你想移植一個 C# REST SOE的時候,下面的程式碼展示了你應該移除和替換10.0中的哪些內容:
public class MySampleSOE: IServerObjectExtension, IObjectConstruct,
IRESTRequestHandler
{
// Delete 10.1 template code and paste your
// corresponding 10.0 code here.
}
如果與10.0的SOE相比10.1的SOE更改了名稱,那麼在建構函式中更新SOE的名稱。檢視如下的程式碼示例:
public MySampleSOE()
{
soe_name = this.GetType().Name;
logger = new ServerLogger();
reqHandler = new SoeRestImpl(soe_name, CreateRestSchema())as IRESTRequestHandler;
}
9.儲存解決方案,並且編譯。這會在你的專案的bin目錄下建立一個.soe檔案。
10.將你的SOE部署到ArcGIS Server上請參見How to deploy a server object extension to ArcGIS Server。
相關文章
- 10.1中SOE新特性
- 使用 .NET 升級助手將.NET Framework應用遷移到.NET 5Framework
- NCF 中如何將Function升級到FunctionRenderFunction
- SAP系統升級,如何做資料遷移?
- ERP升級:如何做好資料遷移(轉)
- (轉)手工升級資料庫10.1到10.2資料庫
- 遷移式升級的測試
- 如何將 Ubuntu 版本升級到新版本Ubuntu
- gitlab安裝/遷移/升級流程Gitlab
- 遷移式升級的測試(二)
- 遷移式升級的測試(三)
- 遷移式升級的一點思考
- 資料庫的升級及遷移資料庫
- 我如何將部落格遷移到 Kubernetes(上)
- 如何將傳統 Web 框架遷移部署到 Serverless 架構?Web框架Server架構
- Oracle舊版本透過資料遷移方式升級到新版本Oracle
- Grafana的版本升級和資料遷移Grafana
- C# 利用.NET 升級助手將.NET Framework專案升級為.NET 6C#Framework
- 如何將你的 CocoaPods 庫升級到 Swift 4Swift
- .NET框架下Oracle到SQL Server遷移框架OracleSQLServer
- ORACLE11G從WINDOWS到LINUX跨平臺遷移並升級OracleWindowsLinux
- 32位升級到64位之後遷移oracle db遇到的問題Oracle
- datapump跨平臺升級遷移的總結
- 一種遷移式升級的方案考慮
- svn版本升級遷移和異地備份
- 如何將webpack2專案升級到webpack3Web
- 遷移或升級後你應該如何調整你的資料
- 10G遷移升級到11G使用SPA 分析SQL效能例項SQL
- 從10.1或更高版本升級到11.1或更高版本,如何在升級前預處理SYS.AUD$中的記錄
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- weblogic版本升級遷移需要注意事項Web
- SQL Server升級和遷移的三個技巧GZSQLServer
- expdp/impdp跨版本升級遷移問題總結
- 如何將電腦配置升級到win7/win8Win7
- python2.6升級到3.3.0 以及依賴庫在遷移時的處理Python
- aix 6.1上rac升級到10.2.0.4AI
- 【DBA Part03】國產Linux上Oracle RAC安裝-升級-ADG-遷移LinuxOracle
- 【XTTS】Oracle XTTS V4--Oracle11.2.0.4+ 遷移升級TTSOracle