线性参考 ArcGIS WCF
无意中浏览ESRI论坛,发现了个好帖子:
正好项目中需要用到根据路段桩号定位到路段,以及根据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对象。
重新运行宿主程序,问题解决。
备注:由于自身能力不足以及项目进度要求,在工作中碰到的许多问题没有来得及记下,今日闲下片刻,对这几个星期的工作做一简单梳理。
浙公网安备 33010602011771号