Andrew Coates ::: MSFT

It's all about community!

VC# Express Beta2 and MapPoint WebService (oh man!)

VC# Express Beta2 and MapPoint WebService (oh man!)

  • Comments 10

I'm currently working on an article introducing C# Express edition for one of the local developer magazines and my plan was to take the ScreenSaver example that ships with the product and extend it a little. In particualr, I wanted to introduce the concept of calling web services. Instead of using a folder with images as the background for the screensaver, I wanted to pull down a map centred on an address that the user entered into the options dialog (and then verified via MapPoint's FindServiceSoap service).

So, I added a reference to the MapPoint wsdl and away I went. Things started getting strange when I called the service. In particular, I'd get an exception:

Server did not recognize the value of HTTP Header SOAPAction:
   http://s.mappoint.net/mappoint­-30/FindAddress. 

Long story short, what it looks like is happenning is that the WSDL generator that generates reference.cs is not handling the fact that MapPoint has 4 services defined in the WSDL (Common, Find, Render and Route), that is to say, it's kind of recognising the fact in that it generates stubs for all of those services and their methods and data types, it just gets it wrong.

Each of the services needs a separate URL to call the methods, but the code just seems to use the first one it finds in the WSDL (in this case, the URL for the Common service) . There's only one entry in the Settings where there should be four and the Reference.cs code only uses that one setting.

To fix this manually, add the following settings to the Settings.Settings (You'll obviously need to change ScreenSaver1 to the name of your project, or call it whatever you want, as long as you reference it correctly in Reference.cs)

Name Type Scope Value
ScreenSaver1_net_mappoint_staging_FindService (Web Service URL) Application http://findv3.staging.mappoint.net/Find-30/FindService.asmx
ScreenSaver1_net_mappoint_staging_RouteService (Web Service URL) Application http://routev3.staging.mappoint.net/Route-30/RouteService.asmx
ScreenSaver1_net_mappoint_staging_RenderService (Web Service URL) Application http://renderv3.staging.mappoint.net/Render-30/RenderService.asmx

Now open up Reference.cs (easiest way to do this is to right-click on one of the web service objects and choose Go To Definition) and fix the settings for each of the 3 services

public RenderServiceSoap() {
   this.Url = ScreenSaver1.Properties.Settings.Default.ScreenSaver1_net_mappoint_staging_CommonService;

becomes

public RenderServiceSoap() {
   this.Url = ScreenSaver1.Properties.Settings.Default.ScreenSaver1_net_mappoint_staging_RenderService;
public RouteServiceSoap() {
   this.Url = ScreenSaver1.Properties.Settings.Default.ScreenSaver1_net_mappoint_staging_CommonService;

becomes

public RouteServiceSoap() {
   this.Url = ScreenSaver1.Properties.Settings.Default.ScreenSaver1_net_mappoint_staging_RouteService;

and

public FindServiceSoap() {
   this.Url = ScreenSaver1.Properties.Settings.Default.ScreenSaver1_net_mappoint_staging_CommonService;

becomes

public FindServiceSoap() {
   this.Url = ScreenSaver1.Properties.Settings.Default.ScreenSaver1_net_mappoint_staging_FindService;

I'm sure this will be fixed during the Beta process.

Hope this helps some folk.

  • Andrew Coates has a nice post explaining how to make VS .NET 2005 Beta 2 work with MapPoint Web Service,...
  • Say hypothetically you're working on a MapPoint WebService using some flavour of Visual Studio 2005 Beta...
  • Say hypothetically you're working on an application that will consume a MapPoint WebService using...

  • Ok, I'll admit it, I've been putting off trying out
    MapPoint for quite some time
    but last week...
  • Ok, I'll admit it, I've been putting off trying out MapPoint for quite some time but last week I had...

  • Ok, I'll admit it, I've been putting off trying out
    MapPoint for quite some time
    but last week...
  • Ok, I'll admit it, I've been putting off trying out MapPoint for quite some time but last week I had...
  • Ok, I'll admit it, I've been putting off trying out MapPoint for quite some time but last week I had...
  • I'm in Perth as a result of GITA inviting me to speak at their Seminar and Workshops . I presented on

  • I'm in Perth as a result of GITA inviting me to speak at their Seminar and Workshops . I presented

Page 1 of 1 (10 items)