2016-05-13 8 views
0

Я использую TFS api, чтобы вытащить данные по некоторым проектам в локализованную базу данных. В последнее время это перестало работать. и дал нам эту ошибку.TFS API - Объект не установлен для ссылки объекта Ошибка

Объект не указан эталону Объекта

И

Null ссылка исключения на уровне домена (это проваливает момент он соединяет)

Мы потянув вниз по иерархии.

Домен - Коллекция - Проект - Требования ... и т.д.

Debugging Я считаю, что я код может видеть домены, но не захватить их или что-нибудь под ними. Я недоумеваю относительно того, что могло бы вызвать это. Наши библиотеки DLL обновлены с использованием версии TFS (версия 12). Думал, что это может быть проблема с учетными данными, но это происходит при использовании любых учетных данных. Я читал, что это может быть проблема с кешем с учетными данными на стороне сервера. Но у меня нет доступа к этому.

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

Мысли?

UPDATE:

я обнаружил строку кода, где мы имеем провал ... но ходить по нему код определяет все элементы TFS. Домены, тестовые примеры, проекты. Все.

Но всегда будет возвращено Исключение нулевой ссылки. Имейте в виду, что это работало безмятежно в течение нескольких месяцев.

Domain dbDomain = server.Domains.DefaultIfEmpty(null).FirstOrDefault(a => a.DomainId.Equals(domain.DomainId)); 
+0

Делали ли вы какие-либо изменения на сервере TFS до возникновения ошибки? –

+0

Нет, я не могу получить доступ к серверу сервера TFS, где мы это используем. –

ответ

0

Хорошо, так глупая ошибка была в выражении Лямбды. Он возвращал значение null, потому что он пытался вычислить до того, как было присвоено значение. Дурак я.

Domain dbDomain = server.Domains.DefaultIfEmpty(null).FirstOrDefault(a => a.DomainId.Equals(domain.DomainId)); 

Должно быть:

Domain dbDomain = server.Domains.Where(a => a.DomainId.Equals(domain.DomainId))DefaultIfEmpty(null).FirstOrDefault();