线性参考 ArcGIS WCF

无意中浏览ESRI论坛,发现了个好帖子:

    ArcGIS中的线性参考/动态分段技术

    正好项目中需要用到根据路段桩号定位到路段,以及根据GPS点位坐标匹配到相应路段功能,故改造之。

    使用WCF开发发布到 Windows Server 2003 IIS 6.0 下,一切工作正常。

项目中,实际的服务器环境为Windows Server 2008 R2,问题来了:

    使用VS调试模式及部署到IIS中,服务无法正常工作,“拒绝访问”、“RPC服务不可用”等等,Google了许多。

    一、WCF IGISServerConnection连接GIS server 问题 ,不是该问题造成;

    二、ArcGISServer RPC服务错误(原创) ,按顺序设置权限,重启服务器,问题依旧,没有解决;

    三、修改链接ArcGIS 服务 为每次请求时重新链接,结束后释放链接:

    ESRI.ArcGIS.ADF.Identity identity = new ESRI.ArcGIS.ADF.Identity("user", "passwd", "domain"); 
ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection agsconnection;
agsconnection = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection("hostname", identity);
agsconnection.Connect();
IServerObjectManager SOM = agsconnection.ServerObjectManager;
//
agsconnection.Dispose()

造成Lsass.exe Windows 权限管理程序内存暴涨(服务请求频繁),CPU被用完,服务器瘫痪,查找该问题原因:

         On Windows 2008 Server, Vista, or 7, lsass.exe grows in CPU usage and memory utilization under heavy load

       重新设置,重启SOM,问题依旧;

对Windows Server 2008 R2 以及IIS 7.5中的权限管理的不甚了解,使得我对上述问题的解决看不到任何希望:

   查找相应资料,采用WPF作为WCF宿主,时间有限,参考以WPF为宿主程序的WCF服务创建

   运行宿主程序,一切正常,但随之又有问题:程序每每到凌晨0点,IRouteLocator2 pRtLocator,IServerContext pServerContext两个对象均报   错:RPC服务不可用,这个问题在之前已经遇到过(但在这里我没有深究),本想写个脚本定时开关宿主程序,想想这个不是解决之道。

    于是乎只有另寻他路,查看 (ArcGIS中的线性参考/动态分段技术)其实ADF开发和AO开发差别不大,于是乎直接读取本地 ” 路段数据 PolyLine M ” ,生成IRouteLocator2 pRtLocator对象。

    重新运行宿主程序,问题解决。

 

备注:由于自身能力不足以及项目进度要求,在工作中碰到的许多问题没有来得及记下,今日闲下片刻,对这几个星期的工作做一简单梳理。

 

    

    

posted on 2013-05-30 10:25  多说无益  阅读(318)  评论(0)    收藏  举报

导航