使用TAP模式的WCF服务调用不支持WCF绑定超时



我正在使用Xamarin iOS和silverlight 3 slsvcutil生成WCF服务,以便在移动应用程序中使用。然后,我使用task.Factory.FromAsync创建了一个基于任务的实现,这样我就可以对服务调用使用异步等待。在对长时间的数据传输进行调用时,我在60秒时收到一个网络超时异常,尽管WCF绑定设置为使用10分钟、长但安全。创建任务的代码是:

public Task<byte[]> SyncExAsyncT(int accountId, string accountUsername, byte[] syncData, System.DateTime lastSyncDateUtc, int appVersion, string deviceName, string misc, int modelVersion, string deviceToken)
{
    return Task<byte[]>.Factory.FromAsync((callback, asyncState) =>
        base.Channel.BeginSyncEx(accountId, accountUsername, syncData, lastSyncDateUtc, appVersion, deviceName, misc, modelVersion, deviceToken, callback, asyncState),
        base.Channel.EndSyncEx, null);
}

我使用byte[] responseStream = await client.SyncExAsyncT 按预期调用该方法

如何控制此实现的超时,以避免60秒的网络超时?

请参阅这些错误:

https://bugzilla.xamarin.com/show_bug.cgi?id=25251
https://bugzilla.xamarin.com/show_bug.cgi?id=19697
https://bugzilla.xamarin.com/show_bug.cgi?id=18029

月份以来,此问题尚未解决

最新更新