在Windows7下安装ArcGis Server 有时是件容易出错的事情,尤其是当你的安装顺序颠三倒四的时候。
例如: 你三下五除二先安装了 ArcGis 9.3 Desktop 进而又以“迅雷”不及掩耳之势连带安装了 ArcGis Server for .net or java 9.3 。这时你会发现安装程序会提示你
Web Applications 依赖不存在,无法完成安装。
这时你会恍然大悟,IIS 没装,必然的。之后你便找来当初的Win7盘,准备先把IIS装好再说。可这时,你也许会发现,打开 控制面板--〉程序和功能--〉打开或关闭Windows功能 后,等候一小段时间接踵而来的是“一片空白”。咋回事? 原来是ArcGis 在安装好后,会修改注册表对注册空间进行限制。咱得把它改回来,regedit-->HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control 找到 RegistrySizeLimit 将其改回 ffffffff。重起再试! 行了么?
应该可以了,看到久违了的 IIS了,恩!安装的时候也不能大意,很多东西都要小心勾选,切勿遗漏。看看下面这张图,
按这个勾应该就可以了。这时候感觉已经等不及了,赶紧把这东西装完进入主题!~~
开始了! ArcGis Server 9.3 for . Net installing ... 一连串的下一步送走它。Post install 也没犹豫的一顿设置,结束。看看服务列表里 ArcServerObjectManager 已经启动,任务管理器里 SOC SOM 都在运行,啥都甭想了,赶紧打开 ArcGis Server Manager 那个管理页面试试。
啥? 不行? 真的假的? 没错阿,都没错阿。
别瞎想了,赶紧打开IIS 看看站点对不对。一打开傻眼了,压根儿就没有 ArcGis 的站点或虚拟目录。安装程序没给咱弄好,咱自己弄。幸运的是在C:根目录下找到了ArcGis的目录,打开一瞅,嘿,就是它。 把它扔进wwwroot(在原地方直接设置也可以)里,这下默认网站里有它了,刷新,重起网站。再看,还不行。运行时错误,还看不到抱错信息,可恶。把mode改了,看看详细抱错信息。
<system.web><customErrors mode="Off"></customErrors></system.web>
“分析器错误信息: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。”
错误信息说的明白,“ IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误”,配吧~~~~~还等什么。找到ArcGis(因为目前它是站点下的一个目录),由键它--〉转为应用程序--〉图标变了样? 那就对了。再试试,依旧报错,还是不行。Manager目录也变应用程序,再进入http://Localhost/ArcGIS/Manager/ 。感动,可算看见登陆界面了。
进入,Service Manage ,Add new Service , Publish Resource 先配它一气。 ?, Finsh要等这半天,抱错了,信息还挺长
服务器上发生错误。请查看 Web 服务器上的“事件(应用程序)”日志了解详细信息。
工作站服务没有启动。
显示错误详细信息
Stack Trace: 在 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
在 System.DirectoryServices.DirectoryEntry.Bind()
在 System.DirectoryServices.DirectoryEntry.get_Name()
在 ESRI.ArcGIS.Manager.Security.SecurityHelper.GetDomainName(String machineName)
在 Manager_Framework_Permissions.Page_Load(Object sender, EventArgs e)
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
用什么用户登录的? 赶紧看看权限。把登陆用户加入Administrator组(当然,该用户已经隶属于 agsadmin和agsuser两个组了),之后再试,终于可以了。
地图发布是成功了,Rest访问如何? http://Localhost/ArcGIS/rest/services , 不成,把Rest目录转为应用程序。
这下可以了吧。