iOS中的WCF超时问题

时间:2015-04-22 13:17:10

标签: c# ios wcf

我正在使用C#为我正在开发的ios应用程序。我有超时问题。

我跟随以下链接 http://developer.xamarin.com/guides/cross-platform/application_fundamentals/web_services/

所以这是我的客户助手

public class ClientHelper
{
    // DM Service Address
    private static readonly EndpointAddress EndPoint = new EndpointAddress("https://xxxxxxx/aaaaa/bbbbb.svc/basic");

    public static DMServiceClient CreateClient ()
    {
        var binding = CreateBasicHttp();

        return    new DMServiceClient(binding, EndPoint);
    }


    private static BasicHttpBinding CreateBasicHttp()
    {
        var binding = new BasicHttpBinding()
        {
            Name = "BSHttpBinding",
            MaxReceivedMessageSize = 2147483647,
            MaxBufferSize = 2147483647  
        };

        binding.ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas()
        {
            MaxArrayLength = 2147483646,
            MaxStringContentLength = 524288045

        };

        var timeout = new TimeSpan(0, 0, 2);
        binding.SendTimeout = timeout;
        binding.OpenTimeout = timeout;
        binding.ReceiveTimeout = timeout;
        binding.CloseTimeout = timeout;

        binding.Security.Mode = BasicHttpSecurityMode.Transport;
        return binding;
    }
}

进程可能需要10秒以上,我将超时设置为2秒,但没有发生任何异常。

我们尝试在桌面应用中将其设置在appconfig文件中,它可以正常工作。在iOS应用程序中,没有appconfig文件,然后我就像那样给予超时。

1 个答案:

答案 0 :(得分:0)

我找到了答案。有趣的是,没有关于它的信息..

   service.InnerChannel.OperationTimeout = TimeSpan.FromSeconds(30.0); 

所以它解决了我的问题.. https://stackoverflow.com/a/10108281/1022138