Я задавал этот вопрос раньше, не доходя до решения, но так как я проделал гораздо больше тестов и отладок, и получил новую информацию, я решил снова спросить в надежде разобраться с этим идля всех.
Срок службы моего домена истекает через 1 минуту.Я прочитал все посты и увидел, как создать частичный класс и явно установить значения тайм-аута, и я сделал именно это, но я все еще получаю тайм-аут после одной минуты. Предостережение в том, что после явной установки времени ожидания в моем частичном классе / методе я больше не получаю стандартную ошибку времени ожидания.Вместо этого я получаю это:
{System.Net.WebException: удаленный сервер возвратил ошибку: NotFound.---> System.Net.WebException: удаленный сервер возвратил ошибку: NotFound.в System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) в System.Net.Browser.BrowserHttpWebRequest. <> c_DisplayClass5.b_4 (объект sendState) в System.Net.Browser.Async_S_S_Date_State (0).--- Конец внутренней трассировки стека исключений --- в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта) в System.Net.Browser.BrowserHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в System.Services.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse (результат IAsyncResult)}
Вот мой частичный класс, в котором я устанавливаю значения времени ожидания. Я отладил это и знаю наверняка, что эти значения установлены до того, как эти значения установленысделать звонок в сервис.Сервисный метод, с которым я работаю - 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.Я сбит с толку относительно того, что это может быть.Я не думаю, что значения времени ожидания игнорируются, так как я больше не получаю стандартное исключение времени ожидания.Я просто думаю, что есть другое место, где происходит тайм-аут.
Есть идеи?
-Скотт