VC# Express Beta2 and MapPoint WebService (oh man!)
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:
https://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 | https://findv3.staging.mappoint.net/Find-30/FindService.asmx |
ScreenSaver1_net_mappoint_staging_RouteService | (Web Service URL) | Application | https://routev3.staging.mappoint.net/Route-30/RouteService.asmx |
ScreenSaver1_net_mappoint_staging_RenderService | (Web Service URL) | Application | https://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.
Comments
- Anonymous
May 05, 2005
Andrew Coates has a nice post explaining how to make VS .NET 2005 Beta 2 work with MapPoint Web Service,... - Anonymous
June 13, 2005
Say hypothetically you're working on a MapPoint WebService using some flavour of Visual Studio 2005 Beta... - Anonymous
July 11, 2005
Say hypothetically you're working on an application that will consume a MapPoint WebService using... - Anonymous
July 31, 2005
Ok, I'll admit it, I've been putting off trying out
MapPoint for quite some time
but last week... - Anonymous
August 06, 2005
Ok, I'll admit it, I've been putting off trying out MapPoint for quite some time but last week I had... - Anonymous
August 06, 2005
Ok, I'll admit it, I've been putting off trying out
MapPoint for quite some time
but last week... - Anonymous
August 06, 2005
Ok, I'll admit it, I've been putting off trying out MapPoint for quite some time but last week I had... - Anonymous
August 08, 2005
Ok, I'll admit it, I've been putting off trying out MapPoint for quite some time but last week I had... - Anonymous
November 20, 2007
I'm in Perth as a result of GITA inviting me to speak at their Seminar and Workshops . I presented on - Anonymous
November 20, 2007
I'm in Perth as a result of GITA inviting me to speak at their Seminar and Workshops . I presented