158
Chapter 8: Using Flash Remoting for Microsoft .NET
null);
var pc:PendingCall = flashService.getMessage();
pc.responder = new RelayResponder( this, "getMessage_Result",
"getMessage_Fault" );
function getMessage_Result(var re:ResultEvent):Void
{
serviceMessage.text = re.result;
}
function getMessage_Fault(fe:FaultEvent):Void
{
serviceMessage.text = fe.fault.faultstring;
}
Invoking a remote web service from Flash
Using Flash Remoting for .NET, you can invoke any remote .NET-compatible web service
directly from your Flash application with no .NET application development required. To find a
remote web service, go to a public Universal Description, Discovery, and Integration (UDDI)
registry, such as http://www.xmethods.net. Using the WSDL URL and method names found in
the registry, you write ActionScript in your Flash application to invoke the web service.
As with local web services, Flash interacts with remote web services by using the .NET
framework’s WSDL Tool (wsdl.exe) to create web service proxies dynamically in the form of
assemblies (with the .dll extension). Remember, you must allow write and modify permissions for
your ASP.NET application’s local assembly cache.
For example, the following ActionScript code connects to a Temperature web service (http://
www.xmethods.net/sd/TemperatureService.wsdl), which returns the local temperature by U.S. zip
code:
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
var webService:Service = new Service(
"http://localhost/myASPApp/default.aspx",
null,
"http://www.xmethods.net/sd/TemperatureService.wsdl",
null,
null);
var pc:PendingCall = webService.getTemp(zip.text);
pc.responder = new RelayResponder(this, "getTemp_Result", "getTemp_Fault");
function getTemp_Result(re:ResultEvent):Void
{
tempDisplay.text = re.result;
}
function getTemp_Fault(fe:FaultEvent):Void
{
tempDisplay.text = fe.fault.faultstring;
}