s00sss00s 2022-03-29 18:31 采纳率: 37.5%
浏览 123
已结题

xamarin.forms 可移植项目中wcf调用提示异常,同步的方法会有一次卡机,异步方法直接异常

问题遇到的现象和发生背景

xamarin.forms 可移植项目中wcf调用提示异常,

如果使用的是同步的方法,则可以正常调用,并返回调用结果,但是在测试多次后会有一次卡在,并且屏幕死机,很长时间后显示xx出现错误,是否等待,或退出。
如果使用的是await 后面加上系统生成的异步的方法,则会直接显示异常。

img

img

问题相关代码,请勿粘贴截图

string backstring = null;
int u = order[hang].ID;

                if (quren == "确认")
                {
                    Service1Client client = new Service1Client();
                    //backstring = client.customerback(u, action);                 //如果这行注释掉,使用下面那行会直接报异常,而如果使用这行,不用下面那行,则可以得到服务器端返回的结果,但是在多次点击使用后会有一次卡住并且死机。这个是是使用了 client.CloseAsync();   的情况下还出现的问题。
                   
                    backstring = await client.customerbackAsync(u, action);

                    client.CloseAsync();     
                }       
运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果

同步的方法调用可以得到结果,也在正常使用,但是总会在手机信号不好或者连续使用刷新的情况下会有一次死机,体验很差。想解决了死机的问题。

  • 写回答

2条回答 默认 最新

  • 歇歇 2022-03-30 00:54
    关注

    目前,Xamarin应用程序与WCF Web服务引用连接服务提供商为其生成的基于任务的异步WCF代理方法不兼容。
    生成旧的、兼容样式的WCF代理方法的一种方法是运行SvcUtil。在开发人员命令提示符下使用/async和/tcv:Version35开关执行。这将生成同步代理方法、开始/结束式异步编程模型(APM)回调代理方法和基于事件的代理方法,所有这些方法都与Xamarin应用程序兼容。
    (注意:如果省略/async开关,SvcUtil.exe将生成更新的、不兼容的基于任务的代理方法。)


    WCF 已经死了。切换到 ASP.NET Core WebApi,你会更开心。
    Xamarin 中的 WCF 存在一些限制。某些 WCF 绑定不受支持,某些代理生成方法可能不起作用。
    如解决您的问题,望采纳

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月3日
  • 赞助了问题酬金21元 3月29日
  • 赞助了问题酬金30元 3月29日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿