Windows Phone 7 выдает EndpointNotFoundException через одну минуту

Вызов службы WCF в моем приложении вызывает исключение EndpointNotFoundException через одну минуту. Все тайм-ауты более одной минуты.

var binding = new BasicHttpBinding {
    OpenTimeout = TimeSpan.FromMinutes(3),
    CloseTimeout = TimeSpan.FromMinutes(6),
    ReceiveTimeout = TimeSpan.FromMinutes(2),
    SendTimeout = TimeSpan.FromMinutes(5)
};
client = new ServiceClient(binding, new EndpointAddress("http://..."));
client.InnerChannel.OperationTimeout = TimeSpan.FromMinutes(4);

Я нашел ветку на форуме Microsoft, но нет решения. http://social.msdn.microsoft.com/Forums/ar/windowsphone7series/thread/cba9c633-6d79-4c04-8c08-cd0b5b33d8c6

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

public string Test() {
    Thread.Sleep(60000);
    return "test";
}

Но вызов этого сервиса работает правильно:

public string Test() {
    Thread.Sleep(58000);
    return "test";
}

3 ответа

Решение

Я загрузил библиотеки.NET Framework с устройства Windows Phone и декомпилировал их.

HttpWebRequest имеет неизменяемый таймаут в 1 минуту.

Для подтверждения я создал страницу aspx. Если я добавлю Thread.Sleep(60000) в Page_Load, HttpWebRequest не сможет получить ответ.

Из вопроса не ясно, возникает ли проблема на эмуляторе или устройстве. Если это происходит на эмуляторе, есть ли у вас доступ к сети - т.е. вы можете видеть внешние сайты из IE. Если нет, проверьте настройки прокси на вашем хост-компьютере, так как прокси-сервер локальной сети предотвратит связь эмулятора.

Какие тайм-ауты на стороне сервера установлены? Похоже, проблема может быть на другом конце провода.

Другие вопросы по тегам