Я уже неоднократно замечал, что после установки ArcGIS Server не работает сервис REST, необходимый для доступа к картографическим сервисам из сторонних приложений.
При этой ошибке приложения не могут получить доступ к запущенным на ArcGIS Server сервисам, а при попытке обратится к каталогу REST по ссылке типа http://lebedev/ArcGIS/rest/services/ возникает ошибка:
Ошибка сервера в приложении '/ArcGIS/rest'.
Server Host cannot be null.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: ESRI.ArcGIS.ADF.Connection.ServerHostNullException: Server Host cannot be null.
Ошибка источника:
Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений. |
Трассировка стека:
[ServerHostNullException: Server Host cannot be null.] ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection.Connect(Boolean throwExceptionOnUnauthorizedAccess) +380 ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection..ctor(String host, Identity identity, Boolean connect) +45 ESRI.ArcGIS.REST.RestAppConfig.CheckSecuritySetting(HttpContext ctx) +108 ESRI.ArcGIS.REST.RestAppConfig..ctor(HttpContext context) +61 ESRI.ArcGIS.REST.RestUtils.GetRestAppConfig(HttpContext context) +79 ESRI.ArcGIS.REST.RestModule.System.Web.IHttpModule.Init(HttpApplication app) +26 System.Web.HttpApplication.InitModulesCommon() +65 System.Web.HttpApplication.InitModules() +43 System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +729 System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +298 System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +107 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +289 |
Диагноз: некорректно созданная инстанция ArcGIS Server.
Лечение: Создать новую инстанцию ArcGIS Server.
· Запустите программу c:\Program Files\ArcGIS\DotNet\AddInstance.exe
· Введите параметры для создания новой инстанции сервера (ArcGIS Server Instance Name — имя инстанции, по которому вы будете обращаться к серверу)
· Нажмите кнопку Add. Через 1-3 минуты ожидания новая инстанция будет создана (вы это поймете, когда поле ArcGIS Server Instance Name будет очищено)
· Теперь старую «плохую» инстанцию ArcGIS Server можно удалить. Для этого нажмите кнопку Modify:
· Выберите старую инстанцию и нажмите кнопку Remove Instance.
Помните, что имя, по которому вы будете обращаться к серверу, теперь изменилось. Это касается и приложения ArcGIS Server Manager. Если раньше вы обращались к нему по ссылке http://machine/<OldInstance>/Manager/Default.aspx, то теперь — по ссылке /Manager/Default.aspx">http://machine/<NewInstance>/Manager/Default.aspx.