2016-05-13 42 views
0

Ich verwende die TFS-API, um Daten von einigen Projekten in eine lokalisierte Datenbank zu ziehen. Kürzlich hörte dies auf zu arbeiten. und gab uns diesen Fehler.TFS-API - Objekt nicht auf Referenz eines Objekts gesetzt Fehler

Objekt nicht zu Referenz eines Objekts festgelegt

UND

Null Referenz Ausnahme auf Domain-Ebene (das in dem Moment nicht verbindet)

Wir ziehen die Hierarchie nach unten.

Domain - Collection - Projekt - Anforderungen ... etc.

Debuggen finde ich, dass ich den Code, um die Domains sehen kann, aber sie oder irgendetwas unter ihnen nicht greifen. Ich bin perplex darüber, was das verursacht haben könnte. Unsere DLLs sind alle auf dem neuesten Stand der Version von TFS (Version 12). Dachte, es könnte ein Anmeldeproblem sein, aber dies tritt bei allen verwendeten Anmeldedaten auf. Ich habe gelesen, dass es irgendwie ein Cache-Problem mit den serverseitigen Anmeldeinformationen sein könnte. Aber ich habe keinen Zugang dazu.

Ich würde Code schreiben, aber ich bin unsicher, welcher Teil am hilfreichsten wäre, da die Connector-Methode funktioniert ... scheitert nur, wenn es verbindet, so scheint das Problem an anderer Stelle zu sein.

Gedanken?

UPDATE:

Ich habe die Codezeile erkannt, wo wir einen Fehler ... aber den Code durch sie zu Fuß erkennt alle TFS Artikel. Domains, Testfälle, Projekte. Alles.

Aber wird immer die Null Reference Exception zurückgeben. Denken Sie daran, dies hat seit Monaten ohne Probleme funktioniert.

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

Haben Sie eine Veränderung auf TFS-Server vornehmen, bevor der Fehler auftritt? –

+0

Nein, ich kann nicht auf das TFS-Server-Backend zugreifen, in dem wir dies verwenden. –

Antwort

0

Okay, so die dummen Fehler in der Lambda-Ausdruck war. Es gab null zurück, weil es versuchte, zu berechnen, bevor ein Wert zugewiesen wurde. Wie dumm von mir.

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

Sollte sein:

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