问题
Despite enabling WSE 3.0 on client projects in Visual Studio 2005, web references I make always end up with service proxies derived from SoapHttpClientProtocol. I have to manually change the inheritance to WebServicesClientProtocol, but updating it will revert back to SoapHttpClientProtocol. I am unsure where in Visual Studio project properties can I get it to permanently use WebServicesClientProtocol?
As far as I have read, Visual Studio is supposed to generate the regular SoapHttpClientProtocol-based service proxy, plus another service proxy suffixed with the "Wse" name that derives from Web ServicesClientProtocol. Even Visual Studio .NET 2003 already had this feature. So for some reason my Visual Studio 2005 is not tightly cooperating with WSE 3.0 to generate the additional WebServicesClientProtocol proxy. But where is the missing link?
Update 13 Jan 09
I got another machine to test this, and behold this Visual Studio 2005 can generate proxies based on WebServicesClientProtocol. That means my original workstation's Visual Studio has been messed up; not too sure how one can repair this though.
Add: Mmmm, reinstalling WSE 3.0 did not help either. Maybe WSE just does not work on a x64 Windows Vista... ?
回答1:
Looks like being a 64-bit operating system certainly has its demerits.
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>
来源:https://stackoverflow.com/questions/433062/wse-client-project-keeps-reverting-webservicesclientprotocol-to-soaphttpclientpr