2012-02-19 8 views
1

У меня есть приложение silverlight 4 с включенным сервисом RIA, также Silverlight использует службу WCF, и все вещи размещены в IIS. Мне нужно увеличить тайм-аут silverlight для служб WCF и сервисов ria и IIS 7.5. Как установить установленные значения таймаута (службы ria, WCF, IIS)? P.SУвеличение таймаута в приложении silverlight

Где находятся поля соответствия в конфигурации?

+0

Если бы вы смогли написать сообщение об ошибке, было бы легче помочь. Запрос веб-сайта мог зайти во время передачи большого количества данных (настройка IIS/web.config). Или соединение с базой данных может быть тайм-аутом при запросе большого набора данных (настройка команды SQL). Какое сообщение об ошибке вы получаете? – bperreault

+1

Я спрашиваю, где я могу настроить таймаут, где бы он ни существовал (asp.net, IIS, службы ria, службы wcf, silverlight) –

ответ

0

я столкнулся с той же проблемой, я отправил ответ на этот вопрос здесь: Silverlight 4 WCF RIA Service Timeout Problem

Вот ответ:

Я ответил тот же вопрос здесь: WCF ria service SP1 timeout expired

Ответ:

Я объясню свой контекст и хочу, чтобы это сработало для меня. Я в этом уверен.

Прежде всего, чтобы позвонить RIA услуг, а также используя некоторый контекст домена, в моем примере:

EmployeeDomainContext context = new EmployeeDomainContext(); 
InvokeOperation<bool> invokeOperation = context.GenerateTMEAccessByEmployee(1, 'Bob'); 
invokeOperation.Completed += (s, x) => 
    {....}; 

ничего нового, пока здесь. И с этим я столкнулся каждый раз с тем же самым тайм-аутом через 1 минуту. Я трачу довольно много времени, пытаясь понять, как изменить определение тайм-аута, я пробовал все возможные изменения в Web.config и ничего. Раствор:

Создать CustomEmployeeDomainContext, то есть частичный класс localizated в том же пути генерируемого кода и этот класс использовать метод OnCreate крюк, чтобы изменить поведение созданного контекста домена. В этом классе вы должны написать:

public partial class EmployeeDomainContext : DomainContext 
{ 
    partial void OnCreated() 
    { 
     PropertyInfo channelFactoryProperty = this.DomainClient.GetType().GetProperty("ChannelFactory"); 
     if (channelFactoryProperty == null) 
     { 
      throw new InvalidOperationException(
       "There is no 'ChannelFactory' property on the DomainClient."); 
     } 

     ChannelFactory factory = (ChannelFactory)channelFactoryProperty.GetValue(this.DomainClient, null); 

     factory.Endpoint.Binding.SendTimeout = new TimeSpan(0, 10, 0); 

    } 
} 

Я с нетерпением жду ваших отзывов.

Смежные вопросы