You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET8 MAUI iOS端使用AppCenter出现请求超时错误的解决咨询

.NET 8 MAUI iOS 下 AppCenter 请求超时错误的修复方案

我在.NET 8 MAUI应用中使用AppCenter,iOS平台运行时频繁出现AppCenter请求超时错误,错误日志如下:

2024-05-24 10:08:25.085720+0100 LanguageInUse[10807:123861] Task
<44699F05-B2FF-4151-B525-5430CEC98ED4>.<1> HTTP load failed, 0/0 bytes
(error code: -1001 [1:60])

2024-05-24 10:08:25.097346+0100
LanguageInUse[10807:123861] Task
<44699F05-B2FF-4151-B525-5430CEC98ED4>.<1> finished with error [-1001]
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
UserInfo={_kCFStreamErrorCodeKey=60, NSUnderlyingError=0x6000004a7b40
{Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)"
UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied),
interface: en1[802.11], uses wifi, _kCFStreamErrorCodeKey=60,
_kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask

<44699F05-B2FF-4151-B525-5430CEC98ED4>.<1>,
_NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <44699F05-B2FF-4151-B525-5430CEC98ED4>.<1>" ), NSLocalizedDescription=The request timed out.,
NSErrorFailingURLStringKey=https://in.appcenter.ms/logs?api-version=1.0.0,
NSErrorFailingURLKey=https://in.appcenter.ms/logs?api-version=1.0.0,
_kCFStreamErrorDomainKey=1}

2024-05-24 10:08:25.110523+0100 LanguageInUse[10807:124203] [AppCenter] ERROR: -[MSACHttpClient
requestCompletedWithHttpCall:data:response:error:]/151 HTTP request
error with code: -1001, domain: NSURLErrorDomain, description: The
request timed out. 2024-05-24 10:08:25.110897+0100
LanguageInUse[10807:124203] [AppCenter] ERROR:
-[MSACChannelUnitDefault sendLogContainer:]_block_invoke/233 Log(s) sent with failure, batch Id:E48FF504-C463-43F6-951F-7F1BA3D6F0E0,
status code:0

已知AppCenter将于明年停用,但目前不想更换该服务,请问是否有修复该错误的方案,还是必须移除AppCenter?


修复方案

无需立即移除AppCenter,可尝试以下几种方法缓解超时问题:

  • 延长请求超时时间
    AppCenter iOS SDK默认超时较短,可在初始化时自定义超时配置。在MauiProgram.cs或iOS项目的AppDelegate.cs中添加:

    using Microsoft.AppCenter;
    using Microsoft.AppCenter.Http;
    
    // 初始化AppCenter时配置超时
    AppCenter.Configure("你的AppSecret", new HttpConfiguration
    {
        Timeout = TimeSpan.FromSeconds(30) // 按需调整,比如30秒
    });
    
  • 切换AppCenter服务节点
    日志显示请求的是印度节点in.appcenter.ms,如果用户群体不在该区域,可切换到全局节点:

    AppCenter.SetServerUrl("https://api.appcenter.ms");
    
  • 优化日志发送策略
    调整批量发送的日志数量和间隔,降低单次请求压力:

    using Microsoft.AppCenter.Analytics;
    
    Analytics.SetMaxBatchSize(50); // 减少单批日志数量
    Analytics.SetBatchInterval(TimeSpan.FromMinutes(1)); // 延长发送间隔
    
  • 自定义超时重试逻辑
    监听AppCenter错误事件,针对超时错误实现重试:

    AppCenter.Error += (sender, e) =>
    {
        if (e.Exception != null && e.Exception.Message.Contains("timeout"))
        {
            // 这里可添加延迟重试逻辑,比如使用Task.Delay后重新触发日志发送
        }
    };
    

另外,也可以检查iOS应用的网络权限配置,确保应用已获得蜂窝网络和WiFi的访问权限,同时测试不同网络环境下的请求情况,排除网络本身的问题。

内容的提问来源于stack exchange,提问作者Enrico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:17:04