Ответы:
Вы имеете в виду сторону сервера или сторону клиента?
Для клиента вы бы хотели настроить атрибут sendTimeout элемента привязки. Для услуги, вы хотите настроить ReceiveTimeout атрибут связывания elemnent.
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="longTimeoutBinding"
receiveTimeout="00:10:00" sendTimeout="00:10:00">
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="longTimeoutService"
behaviorConfiguration="longTimeoutBehavior">
<endpoint address="net.tcp://localhost/longtimeout/"
binding="netTcpBinding" bindingConfiguration="longTimeoutBinding" />
</service>
....
Конечно, вы должны сопоставить желаемую конечную точку с этой конкретной привязкой.
receiveTimeout
стороне сервера определяет определение простоя для привязок на основе сеанса. Например, сервер не будет использовать этот параметр для базовых привязок HTTTP. Вы должны свернуть свои собственные тайм-ауты обработки на стороне сервера для WCF
В меню «Инструменты» в Visual Studio 2008 (или 2005, если у вас установлены правильные компоненты WCF) есть параметры «Редактор конфигурации службы WCF».
Оттуда вы можете изменить параметры привязки как для клиента, так и для служб, один из этих вариантов будет для тайм-аутов.
Разные тайм-ауты означают разные вещи. Когда вы работаете над клиентом ... вы, вероятно, в основном смотрите на SendTimeout - проверьте эту ссылку - замечательное и уместное объяснение: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread / 84551e45-19a2-4d0d-bcc0-516a4041943d /
Вы можете выбрать два способа:
1) по коду в клиенте
public static void Main()
{
Uri baseAddress = new Uri("http://localhost/MyServer/MyService");
try
{
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService));
WSHttpBinding binding = new WSHttpBinding();
binding.OpenTimeout = new TimeSpan(0, 10, 0);
binding.CloseTimeout = new TimeSpan(0, 10, 0);
binding.SendTimeout = new TimeSpan(0, 10, 0);
binding.ReceiveTimeout = new TimeSpan(0, 10, 0);
serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
}
catch (CommunicationException ex)
{
// Handle exception ...
}
}
2) По WebConfig в веб-сервере
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding openTimeout="00:10:00"
closeTimeout="00:10:00"
sendTimeout="00:10:00"
receiveTimeout="00:10:00">
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
Для более детального ознакомления с официальной документацией