Я не думаю, что оставлять соединение открытым - это хорошая идея для мобильных устройств. Я предполагаю, что это то, что вы делаете. В моем приложении я просто опрашивал всякий раз, когда это было необходимо, создавая новый HttpWebRequest Но это имело смысл делать в моем приложении, потому что я буду обновлять статус прибытия поезда каждые 40 секунд.
Если вы пытаетесь получить данные по заданному расписанию, включите таймер и просто вызывайте веб-сервер каждые 3 минуты или в соответствии с требованиями.
Если вы хотите иметь возможность что-то проверять (когда приложение закрыто) или если на сервере редко бывают свежие данные, вам необходимо реализовать механизм Push.
Обновление: Вот хорошая статья о решении проблемы тайм-аута - http://blog.xyzzer.me/2011/03/10/real-time-client-server-communication-on-windows-phone-with-long-polling/
Обновление 2: Что если вы настроите это так, что у вас будут каскадные соединения - я имею в виду, поскольку вы не можете использовать больше 60 секунд для каждого соединения, вы можете написать класс, в котором будет размещаться два соединения, и как только одно из них истекает, скажем, за несколько секунд до этого, вы можете начать открывать другое соединение - вы можете выбрать время, чтобы между ними было не более 5 секунд перекрытия. Таким образом, вы можете иметь всегда открытое соединение.
Также посмотрите, что эти ребята сделали с приложением GChat, их исходный код доступен по этой ссылке . Это может обеспечить более правильный дизайн.