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