Я задал этот вопрос до того, как не добрался до решения, но поскольку я провел намного больше тестирования и отладки и получил новую информацию, я подумал, что я попрошу еще раз в надежде получить в нижней части этого раз и навсегда.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. Я озадачен тем, что это может быть. Я не думаю, что значения тайм-аута игнорируются, так как я больше не получаю стандартное исключение тайм-аута. Я просто думаю, что есть еще одно место, где происходит тайм-аут.
Любые идеи?
-Скотт
Пробовал это не повезло .... – TChadwick