Troubleshooting a GeoStream Server |
This topic will assist in troubleshooting common problems encountered when setting up a GeoStream server. If you do not find the solution to your problem on this page, e-mail GeoBase support via gbsupport@verizonconnect.com, including diagnostic information captured using the instructions on this page.
To gain the information required for efficient troubleshooting, we recommend that you use an HTTP inspector, and optionally enable GeoStream's diagnostic logging modes.
Using an HTTP Inspector
HTTP inspection tools let you view requests/responses sent to/from remote servers via HTTP and HTTPS. These are built into many modern browsers such as Google Chrome, and there are also third-party, browser agnostic solutions available, such as Telerik Fiddler. In our examples here, we will discuss Telerik Fiddler, but the same concepts and terminology should be equally applicable to other HTTP inspectors.
When the GeoStream server handles any request, it will send a response. There are three parts of this response that are of particular interest for diagnostic purposes:
Tip |
---|
Telerik Fiddler supports saving the HTTP request/response history into a session archive file, via File -> Save -> All Sessions. These may be requested by GeoBase Support when assisting with complex GeoStream issues. |
GeoStream Logging
The GeoStream server supports optional diagnostic logging, which can be enabled by adding keys to web.config as children of the <appSettings> element. Logs will be created within your GeoStream Data Directory, as defined by the GeoStreamDataFolder key in web.config, in a sub-folder named Logs. Each log will be namespaced and timestamped in UTC.
For the diagnosis of general GeoStream issues, enabling Exception logging is recommended. This will log any errors encountered by the GeoStream server when serving tiles or handling JSON requests.
<appSettings> ... <add key="ExceptionLogging" value="true" /> ... </appSettings>
This creates logs with the following format: geoStreamExceptions_UTCDATE_UTCTIME.log.
To look through the history of the GeoStream server utilization, enable live stats logging. This is a diagnostic tool that logs the contents of the stats-live page every 5 seconds. The stats-live page shows the currently running tasks and the overall GeoStream load. The logging information can be useful if the GeoStream server gets overloaded or if there are long running tasks.
<appSettings> ... <add key="LiveStatsLogging" value="true" /> ... </appSettings>
This creates logs with the following format: liveStats_UTCDATE_UTCTIME.log.
If you are specifically having problems with WMS feeds, including satellite imagery, then enabling WMS Logging is also recommended; this will log details of all WMS requests and any errors occurring upstream, on the WMS/Satellite Imagery server.
<appSettings> ... <add key="GeoStreamWMSLogging" value="true" /> ... </appSettings>
This creates logs with the following format: wms_UTCDATE_UTCTIME.log.
If you are specifically having problems with geocoding requests, including AutocompleteGeocoding and Location Searches, then enabling Geocoding Logging is also recommended; this will log details of all geocoding requests.
<appSettings> ... <add key="GeocodingLogging" value="true" /> ... </appSettings>
This creates logs with the following format: geocoding_UTCDATE_UTCTIME.log.
To diagnose tile loading errors, open an HTTP inspector and attempt to view http://localhost/GeoStream/tile.aspx?t=6,-2,300,2,5. This should display a map centered on the Pacific Northwest.
Note that this assumes you are working on the server itself; if not, replace localhost with your server's hostname. Alternatively, run your HTTP inspector on the client during a GeoStream session, and multiple requests to tile.aspx will be captured; this is useful for pinning down authentication based issues, which will not be captured by the test URL above.
Caution |
---|
In its default configuration, Telerik Fiddler will not display requests to localhost. Substitute either your server's hostname, or 127.0.0.1, the loopback IPv4 address. |
The table below will assist in troubleshooting your map issues, based on the response received:
Error Header | HTTP Status | Shown in Browser | Diagnosis |
---|---|---|---|
None | 200 OK | Beige tile with no coastline or road network | GeoStream server is working correctly, but has no map data for the map area requested. This may indicate that you lack USA or Global data, or that the GeoStream server is looking in the wrong location for GBFS files. Check your RepositoryConfig settings and restart the GeoStream server. |
Failed to Validate License | 500 Internal Server Error | Generic Error Page |
The GeoStream server either failed to find a license, or in the case of an SDK license, failed to contact the GeoStream license
server for validation. Check your license is present in one of:
If using an SDK license, check that your server can send/receive data to http://licenses.telogis.com:80. |
No valid GeoStream server license found | 500 Internal Server Error | Generic Error Page | The license file currently in use does not support GeoStream server functionality. Contact GeoBase Support to check that your license entitlements correctly reflect your contract. |
Valid *.config could not be loaded (for example repository.config) | 500 Internal Server Error | HTML Error Page | The corresponding configuration file is either missing, or contains corrupt XML. Repair/replace the file and restart the GeoStream server. |
Authentication is required for this operation on this server. | 401 Unauthorized | Generic Error Page | Your GeoStream server requires an authentication token for requests received from your IP address, and no token has been provided, either in the request URL or via a cookie. Authentication-free IPs or IP ranges can be configured via the FriendsFile in your GeoStream server directory. If you are seeing this message from a remote machine, you need to ensure your client is completing GeoStream authentication of some kind and providing a valid token. See GeoStream Security for more information. |
Your client's permission to access the server has expired. Please re-authenticate. | 401 Unauthorized | Generic Error Page | The authentication token provided in your request is either invalid, or has exceeded the validity period it requested when issued. You will need to request a new authentication token. See GeoStream Security for more information. |
None | 500 Internal Server Error | Error Page:
geobase64.dll (XXXXXXX) and geobase.net.dll (YYYYYYY) versions don't match | The DLLs being used by the GeoStream server are a mixture of two releases, preventing the GeoStream server from starting successfully. This most frequently occurs after the incorrect application of a GeoBase hotfix. Check the Bin folder of your GeoStream server in Windows Explorer, right clicking to check the version numbers of the geobase.net.dll, geobase.dll and geobase64.dll files. Replace whichever files are required to produce a consistent set, then restart the GeoStream Server. |
If regular map tiles are working correctly, but satellite imagery is failing to display, then there could be a number of different root causes; for example incorrect credentials, problems contacting the satellite imagery server, problems on the upstream server. To capture diagnostics, we recommend enabling WMS Logging (see above), running an HTTP Inspector then either viewing the sample script tutorial.satellite-imagery.aspx (JavaScript) or enabling Satellite Imagery in the Map Explorer sample application (.NET) via Map Style -> Satellite Imagery.
The table below outlines different Error headers that may be included in responses from tile.aspx when requesting satellite imagery. In all circumstances, the GeoStream server will return an HTTP 200 OK response, together with an uncacheable, short expiry basemap tile in place of the requested satellite tile.
Error Header | Diagnosis |
---|---|
Error fetching Wms Imagery: Area not available for trial |
A trial satellite imagery account is created with new installations of the GeoBase SDK. This account has a 30 day time limit, and can only
display the Pacific Coast of the USA, roughly equivalent to our PacWest data file
region; attempts to view satellite imagery outside that area will result in this error. Contact your account manager if you want to
trial satellite data for other areas of the globe.
If you are seeing this error appear despite having a different satellite username/password set in your web.config via the SatelliteUser and SatellitePass elements, then you will need to check your web.config file for the presence of a SatelliteAuthKey element, delete this, then restart the GeoStream server. |
Error fetching Wms Imagery: Your client's permission to access the server has expired. Please re-authenticate. | This error will occur if you are using a trial satellite key which has expired; these are issued with a 30 day expiry period from when you first install the GeoBase SDK. Contact your account manager to arrange an extended trial. |
Error fetching Wms Imagery: Area not available for <username> | The <username> component of the error corresponds to the value of the SatelliteUser element in your web.config file. This indicates that the area you are attempting to view is not included in the areas defined as visible for your username; this may be a limitation of your satellite imagery contract, or an administrative error. Contact GeoBase support for further assistance. |
No response from Imagery Server. |
This may indicate one of the following:
|
Error fetching Wms Imagery: Unable to authenticate with imagery cache for imagery layer WMSSatellite | This error indicates that you either have an incorrect username or password set in your web.config via the SatelliteUser and SatellitePass elements. Check these entries against set up mails received from Verizon Connect; if all looks correct, contact GeoBase support for further assistance. |
Note |
---|
An additional cause for not displaying satellite image tiles could be the fact that you have not disabled the proxy server in the web.config file or specifically defined a proxy server. If this is the case, ASP.NET applications will use the proxy settings that are defined in Internet Explorer for all outgoing communication.
|
For any issue not covered above, contact GeoBase support, ideally providing WMS Logs and a HTTP inspector session log demonstrating the problem.
Other commonly occuring GeoStream issues which do not fit into the categories above:
Symptoms | Root Cause |
---|---|
Sample pages, such as tutorial.simple-map.aspx, display no map frame at all. | This can occur if your IIS Server was configured without Static Content serving enabled, meaning no HTML or images can be displayed. This can be checked/enabled via "Turn Windows features on or off" within the Windows Control Panel. |
JSON POST requests, such as reverse geocoding or routing requests, either fail to be issued, or do not respond. Errors such as "Failed to load resource: Origin is not allowed by Access-Control-Allow-Origin" can be seen in the Javascript debug console. | This is a Cross-Origin Resource Sharing (CORS) issue, and can occur when requests are being made across domains; that is when the JavaScript client is being hosted on http://myAppServer.com and the GeoStream tiles are being served from http://myGeoStreamServer.com. This should be automatically handled by the GeoStream server, but the relevant settings will only be implemented if the ASP.NET Application Pool being used by the GeoStream server is in Integrated, rather than Classic mode. Check your settings in IIS Manager, and restart the GeoStream server. |
If your problem is not listed here, contact GeoBase support for further assistance.