Recurring secured 'Map Service Connection Failed' message
I am running ArcGIS Server 10 SP2 with secured services, Geocortex Essentials 3.10.1 and Silverlight Viewer 1.6. Our map services work fine via the REST endpoint and i am able to preview them in the JavaScript viewer - i am also able to authenticate our app user credentials to get access to these services. This is however our test system and we only have a self-signed SSL certificate on this system.
I am having many problems with arcgis server security authentication but only from within Geocortex. The first map service in the app has previously worked within this Geocortex site and i have configured all the map service layers with themes and data links.
When i load the Site in essentials manager i get the normal 'Map Service Connection Failed' dialog. However, when i attempt to authenticate against the map service using the same app user credentials i get a continual 'Connection failed!' error.
I have Fiddler open on both my laptop and on the server. I see entries in Fiddler communicating between my browser and the Geocortex website, however, in the fiddler on the server i see no traffic between Geocortex and the map server token service. All i see returned from the Geocortex site manater is {"Success":false,"Data":null,"Errors":null}.
I have looked at the RestManager\App_Data\Logs and the Rest\App_Data\Logs and there are no messages in any of the files indicating why this is happening. I have set both the System and Access log levels to Debug but have not received any more information.
There seems to be no communication between the Geocortex REST site and the ArcGIS Server token service.
UPDATE: Probably the same problem, but a different symptom, is when i create a new site and attempt to add the layer in question i get an index out of range exception. Using the 'Create Map Service Wizard' i am able to connect to my server, browse layers, enter my security credentials and preview the maps. However, when i attempt to preview the map service in question i get the following exception:
Details:
Controller = MapServiceWizard
Action = GetAgsMapServicePreview
Error Info:
Source = mscorlib
Message = Index was out of range. Must be non-negative and less than the size of the collection.
Stack Trace = at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at Newtonsoft.Json.JsonReader.Pop()
at Newtonsoft.Json.JsonReader.ValidateEnd(JsonToken endToken)
at Newtonsoft.Json.JsonReader.SetToken(JsonToken newToken, Object value)
at Newtonsoft.Json.JsonTextReader.ParsePostValue(Char currentChar)
at Newtonsoft.Json.JsonTextReader.ReadInternal()
at Newtonsoft.Json.JsonTextReader.Read()
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at Geocortex.Gis.Services.ArcGisServer.Rest.Proxy.RestResource.RequestJsonObject[T](String operationUrl, Dictionary`2 operationParameters, ITokenProvider tokenProvider)
at Geocortex.Gis.Services.ArcGisServer.Rest.ArcGisRestMapServiceBase.InitializeLayers(AgsLayerSummary[] layers, Boolean canChangeLayerVisibility, Boolean keepGeometryFields)
at Geocortex.Gis.Services.ArcGisServer.Rest.ArcGisRestMapService.Initialize()
at Geocortex.Essentials.MapService.Initialize(Boolean includeLayers)
at Geocortex.Essentials.RestManager.Controllers.MapServiceWizardController.GetAgsMapServicePreview(String mapServiceName)
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
It appears that this only happens for this map service. I have examined in detail the AGS REST endpoint for the service in question and another service that does work and there are no glaring differences. The only thing i can see is that there are a multitude of nested group layers in the broken map service where the working service does not have any group layers. Is there a limit for the amount of nested group levels you can have in a map service?
Any advice?
-
SOLVED
I had broken data layers in the MXD in question. I was confused as i was able to fully interrogate the REST endpoint for the map service correctly even though there were broken data layers.
0
Please sign in to leave a comment.
Comments
1 comment