flash 调用 C#下的webservice

wj469288588 2010-10-13 10:56:43
flash代码:
var service:WebService=new WebService();
service.loadWSDL("http://192.168.0.200:15005/WebService/Common.asmx?wsdl");
service.addEventListener(ResultEvent.RESULT,onResult);
service.addEventListener(FaultEvent.FAULT,onFault);
var authInfo:AuthInfoVo = new AuthInfoVo();
service.PageInit(authInfo);

C#代码:
[WebMethod(EnableSession = true)]
[ScriptMethod]
public UeKeyValueOs PageInit(AuthInfo authInfo)
{
UeKeyValueOs res;
if (!AuthInfoUtility.IsAuthInfoValid(authInfo, out res))
{
return res;
}
OprRes oprRes = new OprRes();
res.Add("NowUser", UserClientInfo.NowUser);//UserClientInfo.NowUser 当前用户 User类型
oprRes.SetModule(System.Reflection.MethodBase.GetCurrentMethod()); oprRes.EndTime = DateTime.Now;
res.Add(DigitalFamily.ConfigData.Config.RESULT_STR, oprRes);
return res;
}

问题说明:
在调用webservice时,程序没有进入到后台的序列化方法当中,造成在获取UserClientInfo.NowUser时会死循环。
User实体有关联其他实体,在调用webservice时,程序有自定义序列化方式,以避免死循环问题,并返回指定数据。
使用jq调用没有问题,不会出现死循环,正常返回数据,webconfig中配置引用也都正确,之前公司做的项目都是使用jq调用webservice接口,没有错误。
先追踪得到的结论是,以flash调用C#webservice接口,没有调到序列化代码当中。
...全文
382 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmutbbs 2011-12-07
  • 打赏
  • 举报
回复
学习了。正要这个资料。
wj469288588 2011-01-24
  • 打赏
  • 举报
回复
我调用webservice返回的数据时经过json序列化之后的,解决的方式如下,

var ws:URLRequest = new URLRequest("webservice路径,例如http://192.168.0.200:1008/aa/a.asmx/b");
aa为部署项目名, a.asmx为调用的webservice,b为调用的方法
ws.method = URLRequestMethod.POST;
ws.requestHeaders.push(new URLRequestHeader("Content-Type", "application/json;utf-8"));
ws.data =JSON.encode(paras); paras为参数,此前先引用json序列化的文件
var wsLoader:URLLoader = new URLLoader(ws);
wsLoader.addEventListener(Event.COMPLETE,
function(e:Event):void{
successCallback(JSON.decode(e.target.data));
}
);
wsLoader.addEventListener(IOErrorEvent.IO_ERROR,
function(e:IOErrorEvent):void{
errorCallBack(e.text)
});
wj469288588 2011-01-24
  • 打赏
  • 举报
回复
一直忘结贴了, 现在马上结贴
0羽毛0 2010-11-02
  • 打赏
  • 举报
回复
楼上这位 我这有个flex 调用 webServer 的问题。
在Flex中为控件指定数据源是选择 连接数据服务选择我 选的是 web服务。
让后在WSDL URL 中填入webServer的url 会报错内容是:WSDL无效 无法从指定WSDL检索操作和实体。
原因:在服务内部检查期间发生错误。这是为什么啊!
  • 打赏
  • 举报
回复
Flash 这样调用 服务的呀?
我还没学过。。
我只会
Flex 下:
<mx:WebService wsdl="http://192.168.8.20:1110/test.asmx" id="webSvc" useProxy="true" fault="error()">
<mx:operation fault="get_fault(event)" result="get_result(event)" name="PutHellpWord">
</mx:operation>
</mx:WebService>
ronaltn 2010-10-24
  • 打赏
  • 举报
回复
不太会……
wj469288588 2010-10-13
  • 打赏
  • 举报
回复
flash补充代码:
private function onResult(evt:ResultEvent):void{
Alert.show(evt.message.body.toString());
}

private function onFault(evt:FaultEvent):void{
Alert.show(evt.message.toString());
}
出错时的提示是:
Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: 流错误。 URL: http://192.168.0.200:15005/WebService/Common.asmx"]. URL: http://192.168.0.200:15005/WebService/Common.asmx

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧