ThinkGeo.com    |     Documentation    |     Premium Support

Wms url problem

I have a problem trying to work with a remote wms server.


Using a local wms (on our network) everything works well however when trying to use a remote wms I get an 'unable to connect to the remote server' message when doing a Refresh.  In both situations the address of the server is given in IPv4 format like; xxx.xxx.xxx.xxx:8080/geoserver


As part of trying to understand the problem I used the wmsRasterLayer.GetRequesrUrl function.  For the in office server the generated URL looked good, but for the remote server the IP part of the URL was replaced by localhost.  I also copied the generated URL for the remote server directly into the address line of internet explorer and it failed.  I then replaced localhost with the actual IP and it returned a bit of a map (as expected).


Interestingly I had no problem using either server to get specific polygons and lines using wfs.


Do you have any ideas why the IP address is getting substituted for localhost? or suggestions for what I might be doing wrong?


Thanks,

Jonathan


 



Hi Jonathon,  
  
 Thanks for your question! 
 The URI that you set for your WmsRasterLayer should be the URI that is used to make the request. Our code would not redirect this to localhost. 
 I would first double-check your code to verify the URI you have specified and also step through your code to make sure this is not getting changed by a some setting in your web.config or at some other location within your code. 
  
 You might also check to see if you have some settings in your Windows Hosts file that might be redirecting your request.  
 You can find the hosts file at the following path: C:\Windows\System32\drivers\etc

Ryan,


Huge apologies, I was shifted to another job and completely forgot I even asked this question until I restarted on ThinkGeo today.


Unfortunately the localhost problem is still with me and I'm not really sure how to go about resolving it.  I have looked at the Hosts file and there was nothing odd that I could see - just the windows standard file with no customization.  I did try putting in an entry for the IP address I am trying to use but that didn't change anything.


I have also tried using the server name instead of an IP address and again that seems to do the same thing.  The name is rather long as it is an amazon web server so like this: ec2-xx-xxx-xxx-xxx.eu-west-1.compute.amazonaws.com.  Using a command window and entering the IP into NSLookup worked fine and gave the expected name.


Finally I had no difficulty retrieving data from a public WMS provided by the British Geological Survey (BGS).


Sorry again,

Jonathan



Just one extra bit that might be important.


I was looking at the log file on the geoserver and when there is a getcapabilities request it returns a base url like:


    BaseUrl = localhost:8080/geoserver/


Therefore I was wondering does ThinkGeo uses this returned url in building requests?  If so then I suspect we have not set up the geoserver correctly.  For now I'll assume this is a likely problem area and see if it is something we can change.


Thanks,

Jonathan



Possibly my last message on this subject.


It looks like Think Geo does use the returned base url to build the map requests.  However in geoserver global settings it is possible to specify a Proxy Base URL - I changed this from blank to the actual value, like xx.xxx.xxx.xxx:8080/geoserver,  and Think GEO then picked this value up OK and worked perfectly.


All the best,

Jonathan



Hi Jonathan, 
  
 Thanks for your sharing and glad to hear the problem is solved, if you have any more question, please feel free to let me know! 
  
 Regards 
  
 Johnny