2010-05-04

Решаем проблему ArcGIS Server: не работает сервис REST

Я уже неоднократно замечал, что после установки 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

clip_image002

· Введите параметры для создания новой инстанции сервера (ArcGIS Server Instance Name — имя инстанции, по которому вы будете обращаться к серверу)

· Нажмите кнопку Add. Через 1-3 минуты ожидания новая инстанция будет создана (вы это поймете, когда поле ArcGIS Server Instance Name будет очищено)

· Теперь старую «плохую» инстанцию ArcGIS Server можно удалить. Для этого нажмите кнопку Modify:

clip_image004

· Выберите старую инстанцию и нажмите кнопку Remove Instance.

Помните, что имя, по которому вы будете обращаться к серверу, теперь изменилось. Это касается и приложения ArcGIS Server Manager. Если раньше вы обращались к нему по ссылке http://machine/<OldInstance>/Manager/Default.aspx, то теперь — по ссылке /Manager/Default.aspx">http://machine/<NewInstance>/Manager/Default.aspx.