1. 如何安装.Net Link及其示例
ArcIMS在默认安装情况下,不会安装.Net Link及其实例。需要在自定义安装时,才能在"Application Server Connectors”目录树节点下找到".Net Link Runtime & Developer Help"组件节点。而示例也是在"Samples"节点下找到".Net Sample"组件节点。当然,能否看到这两个组件节点是有一定要求的:部署ArcIMS的机器上必须安装.NET Framework1.1及.NET Framework1.1 SDK两个组件。我的IDE是VS 2008,本身不带有.NET Framework1.1相关组件,因此我是单独安装这个两个组件的,然后再重新打开ArcIMS9.0的安装文件,就能在安装组件选择目录树节点中找到.Net Link组件(不知是否一定要求1.1版本的.Net Framework,是不是2.0的也可以,哪天做个测试再做结论),选择对应节点安装即可。
2. BlueViewer网站的环境配置
安装好.NET LINK运行时,在<ArcIMS Install Directory>\ArcGIS\ArcIMS\Connectors\目录下,将会有一个名为NET_Link的文件夹,其内部为ESRI.ArcIMS.Server.dll动态库及其开发帮助。与此同时,在<ArcIMS Install Directory>\ArcGIS\ArcIMS\Samples目录下,也存在一个NET_Link文件夹,其内部为BlueViewer站点工程文件目录。该目录包括基于VB.NET模式开发的BlueViewer网站的全部源代码及工程文件,通过对该工程文件进行发布及环境配置,即可通过Visual Studio.NET 2003或直接在浏览器中输入网站URL查看该ArcIMS网站。那么如何部署该网站呢?
在BlueViewer文件目录下,有个readme.htm文件,打开该文件,其内容讲述了如何部署该站点。现总结内容如下:
(1)对BlueViewer站点工程进行web发布。可采用直接将BlueViewer文件夹拷贝到\Inetpub\wwwroot目录下,再通过IIS将该目录进行web站点创建。或者,在IIS中,通过创建虚拟目录的方式,定位到当前BlueViewer文件目录位置。
(2)根据BlueViewer\axl 文件,用Administrator创建一个Image Service,先调用BlueViewer\Axl\文件中的BlueViewer.axl文件。但需要注意的是BlueViewer.axl文件中,必须指定SHAPEWORKSPACE 和IMAGEWORKSPACE 的directory属性为<BlueViewer Project File Directory>\BlueViewer\Data。即,Data里的数据必须是刚发布的BlueViewer网站中的Data目录,只有这样才能获取网站目录下的Data。将该Service名字取名为BlueViewer。
(3)用记事本打开BlueViewer.sln文件,使得BlueViewer.vbproj文件引用地址值为BlueViewer网站,如果在本机,则为:http://localhost/BlueViewer/BlueViewer.vbproj
(4)用记事本打开BlueViewer.vbproj文件,找到带有"HintPath "属性的Reference节点,通过该属性值设置ESRI.ArcIMS.Server.dll动态库文件引用的位置。如果手动改变了该属性值的内容,则需要在.NET中重新编译该文件。因此建议最好通过.NET IDE先引用该动态库文件,编译后,再对整个web工程文件进行发布。
(5)通过直接在IE中输入站点地址或通过.NET IDE进行编译查看,都可以检查此次配置是否正确。URL格式为:<localhost/host name>/BlueViewer/default.aspx
3. 针对BlueViewer示例工程的Asp.NET版本改造
由于BlueViewer示例工程是采用VB.NET方式进行编写的,结合Flyings写的《ArcIMS 连接器--.NET Link 使用方法》一文的代码,我想通过ASP.NET进行版本改造,使之能顺利地在vs中运行起来。我的平台为Visual Studio.Net 2008.
文件结构保持不变。文件名保持对应。除需要修改的Aspx后台代码,前台html及javascript文件保持一致。
改造后的代码如下:
(1)Default.aspx.cs
(2)MakeMap.aspx.cs
通过以上代码改造,并在web.config中设置好默认地图服务执行相关参数。其它工程代码,包括javascript及data、axl等文件目录都引进到asp.net工程中来,基本上就能正常运行了。在运行之前,别忘记通过Administrator创近一个BlueViewer 图像服务。并设置Image Service的Axl文件引用指向此次改造的BlueViewer工程中data\BlueViewer.axl文件。
下图是执行效果: