ArcMap Extension to Adjust for Invalid WMS 1.3.0 Requests
This extension was built to deal with a bug in ArcMap 9.3.1 which issues invalid WMS 1.3.0 GetMap requests. Specifically, ArcMap sends requests which specify the format in which exception notifications should be returned as "application/vnd.ogc.se_xml". This was a valid exception format for WMS 1.1.1 requests, but not for WMS 1.3.0.
Some WMS servers may ignore this, and return exceptions in the default "XML" format. Others may not ignore it, and instead send back an exception which says that the GetMap request was invalid. When this happens in ArcMap, you will not see any data, and a window labeled "ArcMap Drawing Error" may appear containing the text of the exception returned from the server.
Note: ESRI says that this bug has been fixed at ArcGIS Desktop version 9.4.
- Download and run the installer from the link below.
- Open ArcMap. Navigate to the Tools > Extensions menu.
- Find the entry for Adjust WMS Request Parameters and make sure that its box is checked.
- optional: You may find that when you connect to a service that encounters the difficulties described above, the "ArcMap Drawing Error" window appears with no text in it, even though the extension has built you a connection at WMS 1.1.1. If you wish to hide the error window, you can do that by browsing to <your ArcMap Installation Folder (commonly C:\Program Files\ArcGIS)>\Utilities\AdvancedArcMapSettings.exe. Run this application and navigate to the TOC/Data tab. Uncheck the box labeled "Show Drawing Errors window when a layer cannot be drawn".
How it Works
The extension listens for the addition of a WMS 1.3.0 layer to your ArcMap document. As soon as the layer is added the map is refreshed. At this point, if the server cannot ignore ArcMap's invaldi GetMap request, an exception is thrown and the extension notices. It removes the WMS 1.3.0 layer from your document and adds a new layer. This new layer connects to the same service as the removed layer, only at WMS version 1.1.1. Then the map is refreshed, and the WMS data is displayed.