J
jojoba
Hello to all!
I have a fairly simple webservice running in asp.net ajax under c# (vs
2008).
I built the service and it runs just dandy when i test it by itself in
visual studio.
However, to make it work, i had to break up the webmethod into the
BeginXXX, EndXXX model
as per http://msdn2.microsoft.com/en-us/library/aa480516.aspx
But now, i can no longer call this method from javascript (since to
use the BeginXXX, EndXXX, you must remove the [WebMethod] from the
orig method)
Specifically, in javascript i originally would be able to call the
service via
"WebService_speech.GenerateSpeechDataForText"
But after adding in the BeginXXX, and EndXXX, i no longer know how to
call the service from javascript
I feel like i'm so close, but i just dont know how to call my service.
Any ideas?
here's the code snippet from the service
WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService_speech : System.Web.Services.WebService
{
public System.Speech.Synthesis.SpeechSynthesizer TtsVoice;
public WebService_speech()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
public delegate string GenerateSpeechDataForTextAsyncStub(string
text);
//meat of the method (heavy lifting done here)
//where the actual speech data is extracted from the text
public SpeechData GenerateSpeechDataForText(string text)
{
//do speech stuff here
//i removed the processing code
return SpeechData_;
}
//state monitor for the GenerateSpeechDataForText service
public class MyState
{
public object previousState;
public GenerateSpeechDataForTextAsyncStub asyncStub;
}
//start the GenerateSpeechDataForText method
[WebMethod]
public IAsyncResult BeginGenerateSpeechDataForText(string text,
AsyncCallback cb, object s)
{
GenerateSpeechDataForTextAsyncStub stub = new
GenerateSpeechDataForTextAsyncStub(GenerateSpeechDataForText);
MyState ms = new MyState();
ms.previousState = s;
ms.asyncStub = stub;
return stub.BeginInvoke(text, cb, ms);
}
//end the GenerateSpeechDataForText method
[WebMethod]
public SpeechData EndGenerateSpeechDataForText(IAsyncResult call)
{
MyState ms = (MyState)call.AsyncState;
return ms.asyncStub.EndInvoke(call);
}
}
Thx a million,
matt
I have a fairly simple webservice running in asp.net ajax under c# (vs
2008).
I built the service and it runs just dandy when i test it by itself in
visual studio.
However, to make it work, i had to break up the webmethod into the
BeginXXX, EndXXX model
as per http://msdn2.microsoft.com/en-us/library/aa480516.aspx
But now, i can no longer call this method from javascript (since to
use the BeginXXX, EndXXX, you must remove the [WebMethod] from the
orig method)
Specifically, in javascript i originally would be able to call the
service via
"WebService_speech.GenerateSpeechDataForText"
But after adding in the BeginXXX, and EndXXX, i no longer know how to
call the service from javascript
I feel like i'm so close, but i just dont know how to call my service.
Any ideas?
here's the code snippet from the service
WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService_speech : System.Web.Services.WebService
{
public System.Speech.Synthesis.SpeechSynthesizer TtsVoice;
public WebService_speech()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
public delegate string GenerateSpeechDataForTextAsyncStub(string
text);
//meat of the method (heavy lifting done here)
//where the actual speech data is extracted from the text
public SpeechData GenerateSpeechDataForText(string text)
{
//do speech stuff here
//i removed the processing code
return SpeechData_;
}
//state monitor for the GenerateSpeechDataForText service
public class MyState
{
public object previousState;
public GenerateSpeechDataForTextAsyncStub asyncStub;
}
//start the GenerateSpeechDataForText method
[WebMethod]
public IAsyncResult BeginGenerateSpeechDataForText(string text,
AsyncCallback cb, object s)
{
GenerateSpeechDataForTextAsyncStub stub = new
GenerateSpeechDataForTextAsyncStub(GenerateSpeechDataForText);
MyState ms = new MyState();
ms.previousState = s;
ms.asyncStub = stub;
return stub.BeginInvoke(text, cb, ms);
}
//end the GenerateSpeechDataForText method
[WebMethod]
public SpeechData EndGenerateSpeechDataForText(IAsyncResult call)
{
MyState ms = (MyState)call.AsyncState;
return ms.asyncStub.EndInvoke(call);
}
}
Thx a million,
matt