Service unavailable on First call in synchronous mode only! question for webservice.htc gurus.

S

sonic_soul

Hi,
This is a interesting problem.

I got webservice.htc integrated pretty well with .net framework. I
wrote a control that generates all the necessary scripts to consume
webservices with dhtml objects.

It is working great for me accept for one scenario.

When the page loads, and the first webservice call is synchronous, it
returns "service unavailable" error, BEFORE actually making the server
call!

After stepping through the webservice.htc file a few [dozen] times i
noticed that:
callService method checks for readyState == 4 (completed) status of
the xml object. if call is synchronous and status isnt 4 it throws the
"service unavailable" error.

the status is actually 3 (loaded) during the call.

after callservice is executed and I get the nice error alert,
onreadystatechange event is exected again and the xml doc is now in
completed state.

therefore every call after this is successful!


I am running out of ideas on how to troubleshoot this further (other
than working around by making a dummy call to the ws on page load) but
i would hate to work around such important issue.


here is my abridged viewsource (all my js is autogenerated by asp.net
control):

<div id="WebService_233632359"
style="behavior:url(/scripts/webservice.htc)">

function Confirmation_servicecontrol_SubmitTrade_synchronous (
Quantity, Price, Symbol, tradeId, Action ) {

// create call object and set its properties

var callobject = new Object();
callobject.funcName = 'SubmitTrade';
callobject.async = false;


// register service if this is the first time running it
// tagid.classname ( classname = name of server side class which
methods will be using )
if ( ! WebService_233632359.Confirmation ) {

// check if this service has a registration function
if ( typeof(register_Confirmation_servicecontrol) == 'function' )
{
register_Confirmation_servicecontrol();
} else {

// are we in debug mode ?
if (register_Confirmation_servicecontrol) {
alert( 'registration function not found
register_Confirmation_servicecontrol' );
}
return;
}
}

// verify that the service was registered and call it
if ( WebService_233632359.Confirmation ) {


// webservice call

return WebService_233632359.Confirmation.callService( callobject ,
Quantity, Price, Symbol, tradeId, Action );


} else {
if (true) { alert( ' service failed to register ::
WebService_233632359:Confirmation ' ); }
}

}

function register_Confirmation_servicecontrol() {
WebService_233632359.useService('http://localhost/pbt/Confirmation.asmx?wsdl','Confirmation');
}
 
D

David

Actually, if you're calling the service synchronously, I believe the
applicable code is in the _invoke method of webservice.htc. Specifically the
following code block:

try
{
oXmlHttp.xmlHttp.send(szPayload);
}
catch(e)
{
return returnError(oCall, 5);
}
if (oXmlHttp.xmlHttp.responseXML.parseError.errorCode != 0)
{
_errUnknownS.raw = oXmlHttp.xmlHttp.responseText;
return returnError(oCall, 4);
}

If you'll send me your email, I'll send you a commented/formatted version of
webservice.htc that I just created. If you're going to spend much time
trying to understand that code - like I've been trying to do - you'll need
all the help you can get!

David Thom
(e-mail address removed)




sonic_soul said:
Hi,
This is a interesting problem.

I got webservice.htc integrated pretty well with .net framework. I
wrote a control that generates all the necessary scripts to consume
webservices with dhtml objects.

It is working great for me accept for one scenario.

When the page loads, and the first webservice call is synchronous, it
returns "service unavailable" error, BEFORE actually making the server
call!

After stepping through the webservice.htc file a few [dozen] times i
noticed that:
callService method checks for readyState == 4 (completed) status of
the xml object. if call is synchronous and status isnt 4 it throws the
"service unavailable" error.

the status is actually 3 (loaded) during the call.

after callservice is executed and I get the nice error alert,
onreadystatechange event is exected again and the xml doc is now in
completed state.

therefore every call after this is successful!


I am running out of ideas on how to troubleshoot this further (other
than working around by making a dummy call to the ws on page load) but
i would hate to work around such important issue.


here is my abridged viewsource (all my js is autogenerated by asp.net
control):

<div id="WebService_233632359"
style="behavior:url(/scripts/webservice.htc)">

function Confirmation_servicecontrol_SubmitTrade_synchronous (
Quantity, Price, Symbol, tradeId, Action ) {

// create call object and set its properties

var callobject = new Object();
callobject.funcName = 'SubmitTrade';
callobject.async = false;


// register service if this is the first time running it
// tagid.classname ( classname = name of server side class which
methods will be using )
if ( ! WebService_233632359.Confirmation ) {

// check if this service has a registration function
if ( typeof(register_Confirmation_servicecontrol) == 'function' )
{
register_Confirmation_servicecontrol();
} else {

// are we in debug mode ?
if (register_Confirmation_servicecontrol) {
alert( 'registration function not found
register_Confirmation_servicecontrol' );
}
return;
}
}

// verify that the service was registered and call it
if ( WebService_233632359.Confirmation ) {


// webservice call

return WebService_233632359.Confirmation.callService( callobject ,
Quantity, Price, Symbol, tradeId, Action );


} else {
if (true) { alert( ' service failed to register ::
WebService_233632359:Confirmation ' ); }
}

}

function register_Confirmation_servicecontrol() {
WebService_233632359.useService('http://localhost/pbt/Confirmation.asmx?wsdl','Confirmation');
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,902
Latest member
Elena68X5

Latest Threads

Top