问题描述:
当ArcGISServer .NET应用程序和IIS服务访问量过大时(每秒超过25个并发请求),LocalSecurity Authority Subsystem Service (lsass.exe)系统进程就会变得负担过重.这个能造成系统性能下降,在极端的情况下,在如此大的负载情况下系统运行超过12个小时,服务器会死机。
原因:
ArcGISServer .NET Web应用程序和服务必须运行在AGSUSERS或AGSADMIN工作组下。通常的情况下,创建应用程序或者服务是通过ArcGIS Server的Web应用程序或者Catalog完成,它们是被当作一个aspnet进程处理的。
ArcGISServer组件处理Internet服务请求,例如:
http://myArcGISServer/arcgis/services或者http://myArcGISServer/arcgis/rest,或者自己的Web服务,使用过ArcGIS Web Services账户运行的。
每当一个Web应用程序或者Web服务处理一个请求的时候,在ASP.NET工作进程下必须通过lsass.exe去认证。在正常负责条件下,这些认证操作是没有问题的。但是当访问量过大的时候,认证的过程就会严重影响系统的正常运行。
解决方法:
在高负载的情况下,通过配置ASP.NET工作进程,Web应用程序或者Web服务可以缓解lsass.exe进程的负担。
具体办法如下(仅供参考)
1、创建一个新的IIS应用程序池使它默认是ArcGIS WebServices账户。
a、打开IIS管理器,指向“应用程序池”。
b、右键点击“应用程序池”,添加一个新的池。
c、 创建完成后,右键点击新建的池,选择“高级设置”。
d、在“进程模式”中选择“标识”。
e、输入ArcGIS WebServices的用户名和密码。
f、 完成后点击“确定”完成操作。
注意:在ArcGIS Server 10中,上面的步骤已经做好。不需修改。
2、给ArcGIS Web Services账户赋予修改权限。
a、打开资源管理器,指向“C:WindowsTemp”目录。
b、右键点击Temp目录“属性”。
c、 选择“安全”选项卡。
d、在“组或用户名”列表框中,添加ArcGIS WebServices用户,并赋予修改权限。
e、点击“确定”完成操作。
3、配置ArcGIS SOAP Web Services不使用模拟。
a、使用Visual Stadio或者记事本打开Web.Config文件(C: Inetpubwwwroot ArcGIS Services)。
b、在Web.Config文件中,修改Impersonate的值为False。
<appSettings>
<add key=”ServiceInfoRefreshTimeInSeconds”value=”10″ />
<add key=”GCInterval” value=”10″ />
<add key=”Impersonate” value=”false” />
</appSettings>
注意:如果不存在Impersonate节点,添加这个值。
c、 保存Web.Config文件。
4、配置ArcGIS rest Web Services不使用模拟。
a、使用Visual Stadio或者记事本打开rest.config文件(C: Inetpubwwwroot ArcGIS REST)。
b、在Web.Config文件中,修改Impersonate的值为False。
<Impersonate>false</Impersonate>
注意:如果不存在Impersonate节点,添加这个值。
c、 保存rest.config文件。
5、在新的IIS应用程序池中添加ArcGIS WebServices。
a、打开IIS管理器,指向“Default Web Site”节点。
b、展开节点,指向“ArcGIS”目录。
c、 在“ArcGIS”节点下,右键点击“Services”、“Rest”和“Manager”指向“管理应用程序”->高级设置。
d、在“应用程序池”中选择新建的池。
e、点击“确定”完成操作。
6、重新启动ArcSOM服务。
来源:CSDN
作者:sydbc
链接:https://blog.csdn.net/SYDBC/article/details/17203923