我正在使用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文件,然后我就像那样给予超时。
答案 0 :(得分:0)
我找到了答案。有趣的是,没有关于它的信息..
service.InnerChannel.OperationTimeout = TimeSpan.FromSeconds(30.0);
所以它解决了我的问题.. https://stackoverflow.com/a/10108281/1022138