2011-02-04 5 views
2

Я задал этот вопрос до того, как не добрался до решения, но поскольку я провел намного больше тестирования и отладки и получил новую информацию, я подумал, что я попрошу еще раз в надежде получить в нижней части этого раз и навсегда.Silverlight 4 WCF Ria Service Timeout

Услуга «Мой домен» - это время выхода после 1 минуты. Я прочитал все сообщения и увидел, как создать частичный класс и явно установить значения тайм-аута, и я сделал именно это, но я все равно получаю тайм-аут через одну минуту. Предостережение заключается в том, что после явной установки таймаута в моем частичном классе/методе я больше не получаю стандартную ошибку таймаута. Вместо этого я получаю это:

{System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.BrowserHttpWebRequest.<>c_DisplayClass5.b_4(Object sendState) at System.Net.Browser.AsyncHelper.<>c_DisplayClass2.b_0(Object sendState) --- End of inner exception stack trace --- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)}

Вот мой частичный класс, который я установил значения тайм-аута в Я отлажена это и знаю наверняка, что эти значения быть установлены до принятия вызова в службу.. Метод обслуживания, с которым я работаю, - TestTimeout(). Он ничего не делает, кроме как сидеть и ждать, пока не будет выбрано вышеописанное исключение - ровно через одну минуту после вызова.

public partial class MyDomainContext 
    { 
    partial void OnCreated() 
    { 
     var proxy = (WebDomainClient<MyDomainContext.IMyDomainServiceContract>)this.DomainClient; 
     proxy.ChannelFactory.Endpoint.Binding.SendTimeout = new TimeSpan(0, 5, 0); 
     proxy.ChannelFactory.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 5, 0); 
     proxy.ChannelFactory.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 5, 0); 
     proxy.ChannelFactory.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 5, 0); 

    } 
    } 

Моя тестовая функция на сервере:

[Invoke] 
public void TestTimeout() 
{ 
    while (true) 
    { 
    Thread.Sleep(100); // after one full minute, I get the above exception 
    } 
} 

Может быть что-то еще таймаут? Я вижу ту же проблему на моей локальной машине разработки, а также на моем рабочем сервере под управлением IIS7. Я озадачен тем, что это может быть. Я не думаю, что значения тайм-аута игнорируются, так как я больше не получаю стандартное исключение тайм-аута. Я просто думаю, что есть еще одно место, где происходит тайм-аут.

Любые идеи?

-Скотт

ответ

0

Это просто мысль, вы пытались сделать ваш asp.net сессии тайм-аут явно, может быть его на одну минуту ..

+0

Пробовал это не повезло .... – TChadwick

0

Попробуйте поместить это в конструкторе прокси-сервера:

InnerChannel.OperationTimeout = new TimeSpan(24, 0, 0); 
Смежные вопросы