In effort to upgrade my certification to MCPD-EA status, I have been retrograding to older frameworks I never had the chance to work on in the past three years. That means putting down that shiny WCF book and dusting off the WSE 3.0 MSDN documentation.
One of the IDE-incorporated features for WSE - which was long present in Visual Studio .NET 2003 - is to get Visual Studio 2005 to generate service proxies based on the Microsoft.Web.Services3.WebServicesClientProtocol class when the project is WSE-enabled. This class provides the base for all the tasty WSE functionality. However, on my main workstation, I consistently witness Visual Studio generating the stock SoapHttpClientProtocol. Manually editting the inheritance to WebServicesClientProtocol is a mere ephemeral accomplishment, since every attempt to Update Web Reference would just result in Visual Studio running the regular wsdl.exe generator.
But it sure worked fine on a laptop I have. The only major difference is the laptop is x86 Windows Vista. My main desktop workstation is x64 Windows Vista. That cannot be the problem, correct? Why, of course it is.
Straight after the launch of .NET Framework 2.0, Microsoft was visibily eager to concentrate on WCF (and .NET Framework 3.0 overall). That was a time when very few developers were even close to hitting the 4GB limit to realise they had to move on to x64 operating systems. Even as of now there are still not enough developers making the switch into 64-bit territory. I can see just how "much" attention WSE 3.0 got from an x64 perspective. Casting nets across various communities yield practically zero experience on what's happening here. It certainly took long enough for me to alter my choices in words to finally dig out the truth.
The WSE 3.0 installer fails to alter Visual Studio 2005's config file C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\devenv.exe.config with the following entry.
<
configuration>
<system.web>
<webServices>
<soapExtensionImporterTypes>
<add type="Microsoft.Web.Services3.Description.WseExtensionImporter, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</soapExtensionImporterTypes>
</webServices>
</system.web>
</configuration>
Plug that in, and Visual Studio wakes up from its trance to realise there is a better world out there.