Mostanában igen erősen rákapcsoltam a TFS használatára, mondhatni mindennapjaim ettől függnek. Számos gépen használom én is és kollégáim is a fejlesztés során, ezért is ért kellemetlenül, hogy a fő gépemként használt eszközön egyszer csak megjelent a következő felirat:
TF205020: Could not connect to server ‘modelon.visualstudio.com\DefaultCollection’. This server was used in your last session, but it might be offline or unreachable. Confirm that the server is available on the network. To attempt to connect again, or to a different server, click ‘Connect To Team Foundation Server’ in Team Explorer or the Team menu.
The server returned the following error: TF30063: You are not authorized to access modelon.visualstudio.com\DefaultCollection.
Az elsőre megjelenő mondatok nem igazán illenek ide, majd nekiálltam a szokott eljárásoknak:
- IE alól elérhető a dolog – igen
- VS browser ablakából elérhető a dolog – igen (mondjuk komikus hogy verziókompatibilitás miatt ezen ablakot megreklamálja, de mindegy)
- Másik gépről működik- igen
- IE cache törlés után megy-e? – nem
- Credential manager TFS user törlés után megy-e? – nem
Nu ekkora elég időt töltöttem már vele ahhoz, hogy igencsak dühös lettem. Miután a gépet nem akartam e miatt újrahúzni (hisz csak ez a dolog sérült meg láthatóan), mély Google nyomozásba fogtam. Számos érdekes dolgot túrtam fel a TFS lokális dolgairól, melyek azon kívül, hogy érdekesek voltak nem vezettek eredményre.
Most estére – fél nap küzdés és kutakodás után – meglett a megoldás. Az első segítséget Visual Studio forumán leltem fel egy Cannot login to tfs services from vs2012 cikk keretében. Ebben megjelent egy batch amit kiegészítve lefuttattam (mindegy ami mindegy alapon, hisz már jártam erre, töröltem is a cache-t, de hát…):
TFS Cache átnevezése
SET AppDataTF=%USERPROFILE%\Local Settings\Application Data\Microsoft\Team Foundation
SET AppDataVS=%APPDATA%\Microsoft\VisualStudio
IF EXIST "%AppDataTF%\1.0\Cache" MOVE "%AppDataTF%\1.0\Cache" "%AppDataTF%\1.0\Cache.OLD"
IF EXIST "%AppDataTF%\2.0\Cache" MOVE "%AppDataTF%\2.0\Cache" "%AppDataTF%\2.0\Cache.OLD"
IF EXIST "%AppDataTF%\3.0\Cache" MOVE "%AppDataTF%\3.0\Cache" "%AppDataTF%\3.0\Cache.OLD"
IF EXIST "%AppDataTF%\4.0\Cache" MOVE "%AppDataTF%\4.0\Cache" "%AppDataTF%\4.0\Cache.OLD"
IF EXIST "%AppDataTF%\5.0\Cache" MOVE "%AppDataTF%\5.0\Cache" "%AppDataTF%\5.0\Cache.OLD"
IF EXIST "%AppDataVS%\8.0\Team Explorer" MOVE "%AppDataVS%\8.0\Team Explorer" "%AppDataVS%\8.0\Team Explorer.OLD"
IF EXIST "%AppDataVS%\9.0\Team Explorer" MOVE "%AppDataVS%\9.0\Team Explorer" "%AppDataVS%\9.0\Team Explorer.OLD"
IF EXIST "%AppDataVS%\10.0\Team Explorer" MOVE "%AppDataVS%\10.0\Team Explorer" "%AppDataVS%\10.0\Team Explorer.OLD"
IF EXIST "%AppDataVS%\11.0\Team Explorer" MOVE "%AppDataVS%\11.0\Team Explorer" "%AppDataVS%\11.0\Team Explorer.OLD"
IF EXIST "%AppDataVS%\12.0\Team Explorer" MOVE "%AppDataVS%\12.0\Team Explorer" "%AppDataVS%\12.0\Team Explorer.OLD"
Meglepetésemre itt arról szól a dolog, hogy nem csak a tárgy verziót kell átnevezni (majd törölni) hanem MINDET! Lefuttattam a dolgot és bár mozgatott mindent nem segített (bár a működés változott és olyan adatokra is rákérdezett ismét amik eddig nem szűntek meg).
További kutakodások során belefutottam számos a Credential Manager-t taglaló dologba és egy ponton érdekes megjegyzést találtam, amiből végül meglett a megoldás is:
- Nem elég a TFS usereket törölni, hanem – ki tudja milyen összefüggésből adódóan – MINDEN az MS account-t érintő bejegyzést törölni kell, mert azok is kihatással vannak az authentikáció folyamatára, függetlenül attól, hogy nem ide kerül a TFS bejelentkezés eltárolásra.
- Ajánlották a cache törlését (fenti script), és külön figyelmezettet az egyik MVP, hogy nem csak a használt verziót, hanem valamennyit törölni kell, mert néha – nem tudja miért – de a régebbieket is felhasználja a VS ami “kavarodást okozhat”
A fenti két lépést végigcsináltam és végre ismét működik, a kapcsolat felépül. Azért az érdekelne mit kavar azzal a számos egyéb MS Acc ID-vel, miért nem elég számára a sajátját törölni…