Web service running in web application in subdirectory

Discussion in 'ASP.NET WebServices' started by joelnet, Jul 18, 2006.

  1. Is your subdirectory configured as a web application in the control panel?



    Joel Thoms
    DiscountASP.NET
    http://www.DiscountASP.NET
     
  2. Hi

    The webservice runs correctly in the root of the website when called via SOAP.
    When located in a web application, contained in a sub folder from the root, the webservice runs but fails to return the status to the client.

    The error occuring on the client is -
    OLE IDispatch exception code 0 from client: Client: Loading the request into the SoapReader failed: HRESULT = 0x80070057: The parameter is incorrect.
     
  3. Yes it it.


    Tested with a simple service that just returns a string. This runs in the root but not within a web application.
     
  4. Bruce

    Bruce DiscountASP.NET Staff

    What does your web service do?


    The error you are seeing is usually caused by a failure to connect to a COM object.


    Bruce

    DiscountASP.NET
    www.DiscountASP.NET
     
  5. The webservice updates various tables from XML files.


    However as stated in a previous post a simple service that returns a passed string is also failing -


    [WebMethod]
    public string DoSomething(string strZipFile)
    {
    string str = strZipFile;
    return strZipFile;
    }
    </o:p>





    Client code in Visual Foxpro -->


    o = CREATEOBJECT("MSSOAP.SoapClient30")
    o.MSSoapInit("http://www.antdev.net/EcertsService.asmx?WSDL")
    o.ConnectorProperty("ProxyServer")="<CURRENT_USER>"
    o.ConnectorProperty("ConnectTimeout")=5000
    o.ConnectorProperty("Timeout")=60000
    ?o.dosomething("Test")



    If you change the o.MSSoapInit lineto this one it doesn't work -


    o.MSSoapInit("http://www.antdev.net/ecerts_test/EcertsService.asmx?WSDL")


    Error returned





    [​IMG]
     
  6. It sounds like visual fox pro isn't interpreting the response properly.

    This might be an issue with visual fox pro connecting to a .net web service. Sometimes custom changes have to be made to the WSDL to get it to work properly.

    I'm not sure this is the problem, but might want to look into it.


    Joel Thoms
    DiscountASP.NET
    http://www.DiscountASP.NET
     
  7. Bruce

    Bruce DiscountASP.NET Staff

    I tested the EcertsService.asmx in your root, it has a doSomething method but I can't find the doSomething method in your sub folder.

    I also didn't get any error when i tried to test on the browser.

    Just curious, do you get error when you tried to call the web service directly using the browser?


    Bruce

    DiscountASP.NET
    www.DiscountASP.NET
     
  8. Hi


    We have tried it with VFP and .NET with no success.


    As stated before calling the service from the root directory work but the same service in the subdirectory doesn't.


    Root--> http://www.antdev.net/EcertsService.asmx?WSDL


    Function - dosomething - one parameter type string. The passed parameter is returned.


    Sub folder --> http://www.antdev.net/ecerts_test/EcertsService.asmx?WSDL


    This folder is set to a web application and always fails.


    These services are currently running if you wish to try them.
     
  9. Bruce

    Bruce DiscountASP.NET Staff

    hmmm.. if this works on the browser but not with the application that consumes it. I think the problem is probably related to the client itself.

    I also tested referencing both web services with VS.NET and they both worked fine.

    Bruce

    DiscountASP.NET
    www.DiscountASP.NET
     
  10. Hi


    Have updated other service to include dosomething. They both run through the browser.


    It's strange the one called via soap 3 works in the root but not in the sub application?
     
  11. Bruce

    Bruce DiscountASP.NET Staff

  12. Found the issueit was a setting in the web.config file. We had developed some Dime services ages again and the new service had the webservice extensions on and this was causing the problem. After removing this extension the web service worked as expected -->


    <webServices>
    <soapExtensionTypes>
    <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
    </soapExtensionTypes>
    </webServices>
     

Share This Page