BUG: Web Service Endpoints Are Not Exposed If You Set SoapVRoot Property in a Managed ServicedComponent Class (312871)



The information in this article applies to:

  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
  • Microsoft Windows XP Professional

This article was previously published under Q312871

SYMPTOMS

Note The following .NET Framework Class Library namespaces are referenced in this article:

System.EnterpriseServices.ServicedComponent

When you use the managed libraries to build a component in the EnterpriseServices namespace, you can use the SoapVRoot property to programmatically generate a virtual root. You can then use this virtual root to expose the serviced component though Microsoft Internet Information Services (IIS) remoting.

However, when you try to use the SoapVRoot property to programmatically generate a virtual root on a computer that is running Windows XP Professional, no endpoints are exposed for the component.

CAUSE

This problem occurs because of a known bug in Windows XP Professional.

RESOLUTION

To work around this problem, set the SoapVRoot property of the COM+ application manually by using the Component Services snap-in.

Alternately, if you already compiled the component by using the programmatic attribute, and if you already used Regsvcs.exe to register the component, follow these steps to work around this problem:
  1. In the Component Services snap-in, right-click the COM+ application, and then click Properties.
  2. On the Activation tab, clear the Users SOAP check box, and then click Apply.
  3. Select the Users SOAP check box, type the name of the virtual root in the SOAP VRoot text box, and then click OK.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Add a reference to the System.EnterpriseServices namespace, and derive from the ServicedComponent class to build a COM+ component.
  2. Add the following code to the source file:

    Visual C# .NET Code:
    [assembly: ApplicationActivation(ActivationOption.Server,SoapVRoot="COMPlusSoapTest")]
    Visual Basic. NET Code:
    <Assembly: ApplicationActivation(ActivationOption.Server, SoapVRoot:="COMPlusSoapTest")> 
    						
    Notice that the virtual directory is created. However, notice that no endpoints are exposed in the Web.config file of the SOAP VRoot and that no .dll file is in the \Bin subdirectory.
  3. Browse to the Default.aspx page. Normally, the page provides a link to retrieve the .wsdl file for the remoted component. Notice that the page is blank.
If you use one of the workarounds in the "Resolution" section to expose the endpoints, you can then browse to the Default.aspx page and click the link to retrieve the .wsdl file.

Modification Type:MajorLast Reviewed:9/18/2003
Keywords:kbbug kbpending KB312871 kbAudDeveloper