Flex + Asp.net WebService + Sql 构建应用程序时发现的问题
Thursday, October 26th, 2006当使用<mx:WebService>构建应用程序时,向WebService发送请求后,从数据库中检索数据时,会发生IOError,错误提示为”流错误”。
具体原因未知,使用直接定义的mx.rpc.soap.mxml.WebService 对象,配合mx.rpc.AsyncToken进行异步调用,未发生错误。
import mx.rpc.soap.LoadEvent;
import mx.rpc.AsyncToken;
import mx.rpc.soap.mxml.WebService;
import mx.rpc.Fault;
import mx.controls.Alert;
import TokenResponder.TokenResponder;
public var service:WebService;
private function load():void
{
service = new WebService();
service.wsdl = “***.asmx?wsdl“;
service.useProxy = false;
service.showBusyCursor = true;
service.addEventListener(LoadEvent.LOAD,wsdlLoadHandler);
service.loadWSDL();
}
private function wsdlLoadHandler(event:Object):void
{
PluginStatus.text = event.toString();
var token:AsyncToken = AsyncToken(service.method(params));
token.addResponder(new TokenResponder(webserviceResult,”Error”));
}
private function webserviceResult(event:Object):void
{
Alert.show(”Ok”);
}
package TokenResponder
{
import mx.controls.Alert;
import mx.rpc.IResponder;
import mx.rpc.events.FaultEvent;
/**
* A simple responder that will call the result function specified but
* handles any fault by simply raising an Alert with the specified title.
*/
public class TokenResponder implements IResponder
{
private var resultHandler:Function;
private var faultTitle:String;
public function TokenResponder(result:Function, faultTitle:String=null)
{
super();
resultHandler = result;
this.faultTitle = faultTitle;
}
public function result(data:Object):void
{
resultHandler(data);
}
public function fault(info:Object):void
{
//the info object from an AsyncToken is always a FaultEvent
Alert.show(FaultEvent(info).fault.toString(), faultTitle);
}
}
}


