一:建立示例
首先,打開vs2005,建立網站,選擇mapxtreme 6.7.1 web application
救命網站目錄關鍵結構如下:
1:app_code檔案夾
有一個自定義的appstatemanager.cs類,繼承自statemanager,主要是實作自定義的地圖儲存與還原,地圖都存在session中的,而且還是序列化成二進制存進去的
2:mapxtremewebresources檔案夾

主要有幾個關鍵的js,比如:
interaction.js,互動用的js,比如是實作點選,輕按兩下,還是滑鼠移動,還是畫圈之類的.
command.js,發送指令用的,比如是getmap,請求一個地圖,還是zoomout放大地圖,或是zoomin縮小地圖
tool.js,就是界面上拉的那些控件工具用的,比如點選一個控件,才能引發相應的點選,并發送指令

3:global.asax
主要是一些地圖出錯後的處理
4:mapform.aspx
主要的示例界面,裡面拖了一個地圖顯示控件,和一些工具控件在裡面
背景有幾句代碼,主要是用于通路時,初始化狀态管理,并還原地圖顯示;退出時,就儲存地圖目前的狀态
5:web.config:相關的地圖配置
<add key="mapinfo.engine.session.pooled" value="true" />
說明:是否開啟session池,一般都開了

<add key="mapinfo.engine.session.state" value="manual" />
有兩個選項httpsessionstate和manual
httpsessionstate時,系統自動管理地圖的儲存
manual時,手動來決定是否儲存使用者狀态了。就像頁面退出時,調了個方法,來手動儲存地圖狀态


<add key="mapinfo.engine.session.workspace" value="c:\program files\mapinfo\mapxtreme\6.7.1\samples\data\world.mws;c:\program files (x86)\mapinfo\mapxtreme\6.7.1\samples\data\world.mws" />
地圖的工作空間,可以有多個,用“,”号分隔。有一個mapfactory[索引]來取相應的地圖
一般都是通過地圖别名來取,很奇怪的我這裡就是用别名取不到,隻能取mapfactory[0]即第一個
是以一般工作空間就一個了
可以參考自c:\program files\mapinfo\mapxtreme\6.7.1\documentation\pdf\mapxtreme2005_devguide.pdf中的文檔第六章中的a detailed look at manual state management下的application settings即關于webconfig的說明

<assemblies>程式集</assemblies>
沒啥說的,copy就行
<httphandlers>和<httpmodules>
處理請求用的

<sessionstate mode="stateserver" stateconnectionstring="tcpip=127.0.0.1:42424" sqlconnectionstring="data source=127.0.0.1;trusted_connection=yes" cookieless="false" timeout="20" />
這個就是sesstion是儲存到資料庫中的了,和以往的inproc不一樣了
是以相關的地方就是當你要用到session的時候,存的東西必即是可序列化的,不然就報錯了
比如httpcontext.session[實體類],如果實體類不是可序列化的,就報錯了

ok,就先介紹到這裡了...