InfoPath, SharePoint and Web Services are becoming sparring partners for me of late.
In order to retrieve user information in my InfoPath form I followed the instructions at itaysk’s blog, as I wasn’t aware I could use a SharePoint Web Service to get profile information. Sweet – I thought.
I then immediately got:
The User Profile Manager object could not be loaded. —> Value cannot be null. Parameter name: serverContext
This was an error noted by quite a few people, but with very few solutions.
I then got out Fiddler as I do, to see what was going on, and remembered that InfoPath tends to expand url’s into their fully qualified domain names (FQDN) – so you may have entered http://mylocalnetworkserver/_vti_bin/etc.asmx but if you’re on a corproate network or anywhere with DNS happening then you’ll suddenly find yourself calling http://mylocalnetworkserver.some.other.domain.gumph/_vti_bin/etc.asmx.
Why is this important you ask? – Well I then thought ‘I’m sure there wouldn’t be anything logged on the server?’ – well SharePoint probably logs a lot more than most realise, but the error in this case was staring me in the face in the Event Log:
A Windows SharePoint Services Error – Event ID 8214.
Well blow me down. All the other web services I call from InfoPath don’t care about this because they’re not hosted in SharePoint, and SharePoint manages the allowed paths into the application.
Once I went to the Central Admin site –> Operations –> Alternate Access Mappings, and edited ‘Public Zone URLs’ to add the FQDN to the intranet zone (probably could choose any zone), it just started working.