ArcGSIServer服务无法远程连接

摘要:
尽管我们的WebAPP和ArcGISServer地图服务在同一台计算机上,但如果我们通过IIS访问它们,这也称为远程访问。Agsadmin组管理并使用ArcGIServer服务。agsuse地图服务只能在没有管理权限的情况下使用此组。关于向ArcGISServer添加相应用户的具体方法,我们可以参考其他博客。我们的AppArcGISServer用户注册相当于在我们创建的WebAPP中注册访问ArcGISS服务器地图的密钥。请记住勾选“Encryptidentyinweb.config”以使用Webconfig上添加的注册信息的加密格式,这样用户可以保护ArcGISServer地图服务的信息安全。

/********************************************************/

//将ArcGISServer地图服务用户信息注册到Web APP中

//write by zcg

//Beijin

//2010年7月17日

/********************************************************/

我们在使用ArcGISServer服务的时候,就首先要发布Server服务,然后我们就可以远程访问地图服务,当然我们也可以访问本地的地图服务。

那么什么是远程访问,什么是本地访问?

远程访问:

我们在创建Web站点的时候,设置的访问方式为HTTP模式,即,我们访问的该Server服务是要通过IIS来进行访问的。

本地访问:

我们不需要通过IIS,仅仅是在通过一个运行的时候,系统分配的一个端口来访问本地的计算机资源,所谓的本地资源即使:Web应用程序,以及ArcGISServer地图服务都需要再同一台计算机。即使我们的Web APP和ArcGISServer地图服务都在同一个计算机上面,如果我们通过IIS访问,也称之为远程访问。

ArcGISServer对于远程服务的访问的安全性进行了很严格的限制,即,只有在ArcGISServer上注册的用户并且将这些用户添加到agsadmin或者agsuse两个组其中的一个里面才能对其运程的ArcGISServer地图服务进行访问。安装ArcGISServer的时候,系统默认的创建三个用户SOM,SOC,以及ArcGISWebServices三个用户,但是如果不把这个用户添加到相应的组里面我们也是无法进行访问的。 Agsadmin组是管理和使用ArcGIServer服务的,agsuse地图服务是仅仅能够使用这个组,而没有管理的权限。具体的添加相应的用户到ArcGISServer的方法我们可以参考其他的博客文章。只有我们有访问ArcGISServer服务的权限,我们才能在我们创建的Web App中看到地图,否则即使程序运行正常不报错,那么我们的应用程序也看不到地图。

我们利用Web ADF开发框架进行ADF开发的时候,一般都要访问ArcGISServer地图服务的,这个时候我们的应用程序就要有访问权限,那么如何让Web APP有访问的权限呢,我们就需要将能够访问ArcGISServer地图服务的用户注册到我们创建的Web APP中,这一步的目的就是要告诉ArcGISServer地图服务器,我们这个Web App是有你的地图服务的访问权限的,如果我要访问你的服务,你就得给我提供这个服务,而不能拒绝我。我们可以这样比喻:ArcGISServer就好像一个大房子,房子有门锁着,她有三个钥匙,分别是:ArcGISWebServices,ArcSOM,ArcSOC。我们的应用程序就比如一个人,这个人如果要想进入这个房间就要有这个三个钥匙中的一个,才能进入这个房间。 也就是说,如果这个人要进入房间,第一步就要先把这个钥匙装在身上。 我们的App ArcGISServer用户注册就相当于将访问ArcGISServer地图的钥匙注册到我们创建的Web APP中了。这样我们的应用程序就可以访问ArcGISServer服务了。

注册ArcGISSever服务的主要步骤为:

在VS.Net里开发ArcGIS Web项目时,要求用户验证信息,有2种方法:
1. 在Web.Config内明码输入用户信息,形如:<identity impersonate ="true" userName ="fareast\v-sufanj" password ="aaaaaaa"/>
2. 第一种方法显然不太安全,那么可以这样做:
右击“解决方案”,打开“Add ArcGIS Identity......”(如下图)

然后输入:

ArcGISServer地图服务的用户名称、用户密码以及ArGISServer服务所在的服务器的名称。

ArcGSIServer服务无法远程连接第1张

记得将“Encrypt identity in web.config”勾上,这是为了将Web config上添加的注册信息使用加密格式,用户保护ArcGISServer地图服务的信息安全。

如果我们没有选中【Encrypt identity in web.config】,那么我们在WebApp中注册的用户信息就会以明文的格式显示在配置文件里面,很显然这个是很不安全的。

点“OK”后那么在Web.Config页将增加如下信息:
<identity configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>O4ToP2xqjgQAAAAAAl/G+70v6ftWRxCz/zdrtn7tssJg92uosXxgs6dIK2F8uQI</CipherValue>
</CipherData>
</EncryptedData>
</identity>
同时你会发现有此提示:“configProtectionProvider" attribute is not decleared; "EncryptedData" is not contained in the "identity ". ;不过项目能编译通过,也不影响使用!具体原理没搞明白!呵

然后我们的APP就能对ArcGISServer地图服务进行远程地图访问了。
特别注意:如果用户是域帐号,那么在上图中最下面文本框中须输入的域名(如本例),这与登录ArcGIS Server Manager的信息一致(如下图)若非域帐号则直接输入连接机器名!

ArcGSIServer服务无法远程连接第2张

还有一点需要注意:在我们动态实现创建专题地图的时候,需要创建一个ArcGISServer地图服务的一个远程的连接,如果我们没有进行上面的操作,对Web App的远程访问没有进行用户注册,那么我们就不能成功的创建一个连接,但是如果们进行的是利用本地的端口来访问本地的Server服务,则没有问题,问题的关键是,我们创建的App不能仅仅在本地访问吧,即使在本地访问也需要放到本地的IIS上吧,我们总不能每次访问APP都要用VS来打开工程,然后单击运行按钮吧。所以我们都是需要对Web App进行Server用户信息注册的。这个问题我们在创建IservicesContext对象的时候就会遇到这个问题。

至此:我们已经对WebAPP中ArcGISServer地图用户注册的原因以及注册的步骤已经简单的介绍了一下,如果有什么还需要补充或者更正的地方,请即使联系我,大家共同学习、进步。

免责声明:文章转载自《ArcGSIServer服务无法远程连接》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇element ui 的 element-tree文字显示不全的问题如何让您的php也支持pthreads多线程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

四: 使用vue搭建网站前端页面

---恢复内容开始--- 在搭建路由项目的时候的基本步骤 一:创建项目   安装好vue 搭好环境 (步骤在上篇博客中)   进入项目目录      cd   目录路径/ 目录名   创建项目          vue init webpack  项目名   效果:   项目文件结构:及作用    -- build...

教你如何在iPhone AppStore赚钱

现在iPhone销售不断飙升,iPhone无疑是目前最炙热的开发平台之一.  iPhone开发者只需要好好的做自己的app, 销售收款物流交易和发布渠道全部由Apple搞定, 收入3:7, Apple 3, 开发者7.   无疑, 初期几个很成功的app让一批人赚了第一桶金子.  当然大家都跃跃欲试的时候, iPhone的开发也就有点开始白菜化的趋势.  ...

优雅的启动、停止、重启你的SpringBoot项目

前言 你是如何启动、关闭你的SpringBoot项目的?还是使用java -jar xxxx.jar启动? 还在用ps -ef找到你的pid去kill你的应用吗? 让我们来看看还有什么更加优雅的一键启动关闭的方式。 第一种方式 使用shell脚本,就是编写相应的shell脚步去启动和关闭我们的项目。 脚本内容:https://github.com/Link...

RabbitMQ内存爆出问题解决思路

http://www.bubuko.com/infodetail-2121050.html RabbitMQ升级到3.6.1版本后,随着业务和系统功能的增加,出现RabbitMQ内存陡增直至服务宕掉的情况。内存增加时,在management管理控制台上可以见到如下警告: The management statistics database currentl...

Android多开/分身检测

原文:https://blog.darkness463.top/2018/05/04/Android-Virtual-Check/ 多开/分身原本用于方便有多个微信/QQ解决同时登录的问题,但近来年被各种黑产所利用,多见于薅羊毛,部分多开App甚至提供了篡改功能。对于普通用户根本不会有多开的需求的App,一旦检测到当前运行在多开环境下,有理由限制该用户的后...

Yii2基本概念之——配置(Configurations)

在Yii中创建新对象或者初始化已经存在的对象广泛的使用配置,配置通常包含被创建对象的类名和一组将要赋值给对象的属性的初始值,这里的属性是Yii2的属性。还可以在对象的事件上绑定事件处理器,或者将行为附加到对象上。从而在定义了对象的初始值的同时,充分规定对象的运行时的动态特性。 以下代码中的配置被用来创建并初始化一个数据库连接: $config = [...