Error invoking IS web service from .Net client - connection closed

Hi,

I created a WSDL which was called from a .NET Apps. I got the error “The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.”

Could you help?

Thanks

Not enough information. Where was the WSDL located? Can you ping the IS box hosting the web service from the box running the .Net soap client? Etc.

What troubleshooting have you already performed on your own? What did it reveal? How have you attempted to isolate the problem?

Mark

Hi Mark,
I created a web service and generated a wsdl and stored in my c:\inetpub\wwwroot\webservices.

For testing, I run .NET WebService Studio and invoke the .wsdl with parameters. It returns TOTAL_RECORDS = null. When I run the webservice in WM, it works just fine. In the Request/Response tab in .NET Webservice, the item TOTAL_RECORDS is not in the OUTPUT even though it is defined in the webservice in WM, and I cannot figure out why. My .NET WebApps is checking on TOTAL_RECORDS and expecting a value of 0 (not found) or > 0 (record found).

Any help is very much appreciated.
Van-Loc Doran

SOAP-ENV:Body
<ser-root:searchEmployeeResponse xmlns:ser-root=“http://templeton/krEnterpriseServices.empLookUp” SOAP-ENC:root=“1”>

<ERROR_CODE xsi:type=“xsd:string”>0</ERROR_CODE>
<ERROR_MESSAGE xsi:type=“xsd:string”>
</ERROR_MESSAGE>

</ser-root:searchEmployeeResponse>
</SOAP-ENV:Body>

Van-Loc,

What style of web service are you using, soap-rpc or soap-message? Can you generate a web service connector from the WSDL you created and run it successfully in Developer?

Can you post the WSDL as an attachment to you post?

Mark

Mark, I’m using soap-rpc. Per your suggestion, I have generated a webservice from the WSDL and it did not run successfully in Developer. So I’m still trying to fix it. Will let you know.
Thanks, Van-Loc

Hi Mark,

I generated a webservice from the WSDL and ran it in Developer. It returns the following fault message, so I did not know what was wrong with the results. Please help.

Thanks, Van-Loc

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
SOAP-ENV:Body
SOAP-ENV:Fault
SOAP-ENV:Client
[ISS.0088.9133] Error while encoding RPC output
http://templeton:5000/soap/rpc
<detail xmlns:webM=“http://www.webMethods.com/2001/10/soap/encoding”>
webM:exception
webM:classNamecom.wm.soap.coder.SoapCoderRuntimeException</webM:className>
<webM:message xml:lang="">[ISC.0076.9211] SOAP Message Coder cannot encode output data; pipeline does not match output signature, required variable OUTPUT is missing</webM:message>
</webM:exception>

</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Mark,
I created a WSDL and it has a warning. “[ISC.0124.9001] Document to XSD warning: For interoperability reasons, the type is not used in SOAP RPC WSDL. Document queryParams will be defined as closed in the XSD”. What does this warning mean and how to fix it?

Thanks for your help.
Van-Loc

Van-Loc,

I’m just guessing since a) I don’t know the input/output signature of the service you are exposing and b) you haven’t shared your WSDL, but it would appear that IS is having difficulting creating an XML representation of the inputs or outputs of your service. That can happen if your service accepts or returns object variables, uses wildcards (documents with no contents) or other non-standard, non-interoperable approaches.

As I have written here many, many times, Soap-RPC is notorious for its interoperability issues. My guess is that you are experiencing just a few of them.

Mark

Mark,
I try to send you my WSDL but it exceeds the allowed text ( > 10000 characters). What should I do to send it to you?
Thanks, Van-Loc

Try it again… I upped the limit on that file type.

Thank you very much. Here is my WSDL.
Van-Loc
searchEmployee.wsdl (4.72 KB)

Your service returns a document list. This results in the need to serialize an array of objects in soap-rpc, a particularly nasty interoperability area.

Try returning only a single document rather than the EMPLOYEELIST document list and see if you can get it working there.

The Web Services Connector wizard in Developer 6.5 generated a Flow with no errors from your WSDL.

Mark

I have to set the document list to contain multiple records returned. When I changed the document list to a single document, it will not contain other records.

You mentioned Developer 6.5 has no problem, is this problem also related to the Developer version?

Thanks, Van-Loc

First of all, I said that Developer 6.5’s Web Service Connector wizard can generate a Flow from your WSDL. Without access to your servers I could not test it to determine whether it actually works.

Soap-RPC interoperability issues are independent of any webMethods product version.

My advice is to use SOAP-MSG (aka document/literal) style soap messaging instead. There are lots of posts and examples here on how to do that.

Mark

Hi Mark,

There are web services created in my systems and WSDLs were generated using SOAP-rpc and accessed successfully from .NET apps. Maybe my webservice is not rightly created, hence the problem with my WSDL. I will let you know when I get my issues resolved. Thank you very much for your time and help.
Regards, Van-Loc Doran

Mark,

I fixed my problem and was able to generate a working WSDL. I have a very basic (maybe stupid) question. When I click ‘Run’, it does not displayed any results, but when I run it in Trace mode, the results are displayed. Do you know why?

Thanks, Van-Loc

What did you “fix”? Please share the solution.

It’s all about mapping the output of the document lists throughout several services. I will post more details later, my WM server has been down since this morning.

Regards, Van-Loc