Получить команду зависает с использованием VS 2012 и TFS 2008 (ошибка TFS TF400307)

Сегодня, внезапно, я узнал, что не могу успешно выполнить команду типа TFS на нашем TFS. Все время процесс просто зависает в какой-то момент, индикатор выполнения и сообщение о состоянии с текущим обрабатываемым файлом остаются неизменными навсегда, при этом не возникает ошибок. Это происходит в другом файле каждый раз, рано или поздно, в процессе с помощью IDE и утилиты командной строки.

Я использую Visual Studio Premium 2012 с TFS 2008.

У меня никогда не было подобных проблем раньше, и вчера все работало нормально. С тех пор я не знаю никаких изменений конфигурации, и я единственный, кто испытывает эту проблему.

Я не думаю, что есть прямой ответ на вопрос, почему это происходит, но может ли кто-нибудь предоставить какие-либо указания о том, как начать отладку и решить эту проблему?

До сих пор я пробовал различные способы запуска команды get: последняя версия, конкретная версия, карта + получать последние, как внутри VS IDE, так и через командную строку. Также многие другие команды TFS работают хорошо.

Edit:

После некоторых проб и ошибок, оставив процесс в течение часа или около того, я, наконец, наткнулся на сообщения об ошибках в окне вывода исходного кода. Первоначально они не были видны, потому что, когда процесс зависал, он не реагировал на всю IDE. Сообщения одинаковы:

[путь к файлу]: TF400307: операция загрузки завершилась после ожидания 599 секунд для ответа с сервера.

Ответ 1

У меня была такая же проблема с TFS, где она зависала и становилась невосприимчивой.

Я нашел решение для этого, обновив файл tf.exe.config или devenv.exe.config со следующими значениями конфигурации:

<system.net>
    <connectionManagement>
        <add address="*" maxconnection="1000"/>
    </connectionManagement>
</system.net>

Я установил предел 1000 на моей стороне, так как я внимательно наблюдал за значением в Resource Monitor, хотя по правде говоря, я никогда не получал более 600 параллельных соединений.

Ответ 2

Итак, что происходит, так это то, что клиент TFS в VS 2012 имеет ошибку, из-за чего он запускает тайм-аут во всех файлах через некоторое время в процессе при запуске команды get для большего количества файлов.

Как уже упоминалось в следующем примере подключения к MS Connect, обходным решением является использование более старого клиента TFS для запуска команд тайм-аута. Я успешно использовал клиент TSI командной строки VS 2010, чтобы выполнить проект.

Ответ 3

Столкнувшись с той же проблемой, получившей последнюю версию с VS 2012 от TFS 2008. Используя отладчик и инструмент Fiddler, я смог поймать момент, когда VS зависает. Похоже, что что-то не так, когда VS 2012 получает сжатые HTTP-ответы сервера TFS, он не может их распаковать и зависать. После того, как я отключил сжатие для HTTP-трафика TFS, VS больше не висит. Надеюсь, это поможет кому-то другому.

Чтобы отключить сжатие TFS, создайте значение реестра и перезапустите VS:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings EnableCompression (REG_SZ) = "ложь"

Ответ 4

Я столкнулся с подобной проблемой. Изменение рабочего пространства работало для меня, то есть я удалил старую рабочую область и создал новую, где я снова сопоставил требуемые проекты и работал как шарм!

Ответ 5

То же самое, вы очень терпеливы! У меня также есть "TF400324: услуги Team Foundation недоступны с сервера xyz. Техническая информация (для администратора):" Операция завершилась "из" Source Control Explorer "после того, как я отменил" Получить последний процесс "и ждал веков. Возможно, это не количество файлов, а количество данных? Он зависает мне после переноса приблизительно 2 ГБ данных, что происходит именно тогда, когда 32-разрядное целое число со знаком переполнено, но это просто подозрение. Билет: https://connect.microsoft.com/VisualStudio/feedback/details/776506/source-control-explorer-getlatest-hangs-after-certain-amount-of-data-transferred-might-be-integer-overflow#tabs

Ответ 6

Я заметил, что когда я вызвал метод CreateWorkspace с новыми сопоставлениями WorkFolders в качестве параметра, он начал вытягивать все файлы (сопоставленные с $/) на локальные, что объясняет длительное время обработки - было изменено на CreateWorkspace с нулевым значением для WorkFolders, чем добавлено следующее шаг, казалось, сделал трюк