Well, a SOAP extension is configured in one of 2 places for ASP.NET to use it. Are you using it locally to an application or globally on the server? After building a SoapExtension, it can be configured to be used for just a single directory, or for all applications on the server.
To set it up for a single virtual directory, start by placing the assembly in the local bin directory. Next modify web.config as follows to direct ASP.NET to load your new extension:
If it does not already exist, create a new element under <system.web> called <webServices>. then create a <soapExtensionTypes> element under that. Here is an example extension web.config entry from MSDN:
<webServices> <soapExtensionTypes> <add type="PrioritySoapHeaderExtension.PriorityHeaderExtension, PrioritySoapHeaderExtension" priority="1" group="0" /> </soapExtensionTypes> </webServices>
The type attribute of the add element indicates the class type that implements the SoapExtension with the added assembly name after the comma. The priority and group elements allow you to make settings so that you have some control over the order in which this extension will be loaded.
If you want your extension to be available globally for all virtual directories, you will need to place it in the Global Assembly Cache or GAC. You must be assured you have given your assembly a strong name. For more information see the following link in MSDN:
This was first published in August 2002