- Part 3
Implementing Web Services Enhancements (WSE) 3.0
- Topic 1
Enable WSE in client and server applications.
- Add references to WSE assemblies in client applications.
- Edit the Web service proxy class to derive from the WebServicesClientProtocol class.
- Add a <soapExtensionTypes> element under the <webServices> element in a configuration file.
- Add a <configSections> element to add the <microsoft.web.services3> section to a configuration file.
Web Service Enhancements (WSE pronounced Wizzy), is a developer tool that makes it easy to support standards with out large amounts of development. WSE 3.0 integrates right into Visual Studio .Net 2005. To use WSE, simply create a Web Service Project, Right Click on the project in solution explorer and select the WSE configuration tool option from the context menu. This brings up a wizard that allow you to easily configure any of the turn key solutions that WSE 3.0 supports.
The following references should be in your project: Microsoft.Web.Services3, System.Web.Services, System.Security, and System.Xml
When a .Net web service client wants to consume a web service that uses WSE, the proxy that is generated for invoking the service must derive from the WebServicesClientProtocol Class. This class provides access to the SOAP context and the SOAP Headers associated with WSE. When you add a web reference this is not done by default. You must open up the Reference.cs class that is generated when the add web reference is done. Also keep in mind that when you update web reference your changes will be lost and you will have to reapply this change.
SOAP Extensions are code that can be configured to modify and inspect messages coming from client and server before and after the messages are serialized and deserialized. You can configure what SOAPExceptions to apply to your service in the web.config by adding values under the soapExtensionTypes element under the webServices element. WSE 2.0 was implemented completely using SOAP extensions configured in this element. With WSE 3.0, a SOAP Extension is still used ( WseProtocolExtension) but it is configured in a soapServerProtocolFactory element.
WSE 3.0 leverages a custom configuration section where policy is defined. In the web config you must have a configSections element that has a section name that defines the Configuration Section located elsewhere in the config file. This section can then either define the policy, diagnostics, referral, security, tokenIssuer or link to files that do.
Other Resources & Links:
Whats New in Web Service Enhancements 3.0
Altering the SOAP Message With SOAP Extensions
All About ASMX 2.0, WSE 3.0, and WCF