Wielokrotnie wspominałem, że praca z oprogramowaniem Microsoftu przypomina drapanie się brudną nogą hindusa po… nieważne. Niesmak zawsze pozostaje kilka dni. Aktualnie mam coraz więcej styczności z produktami Microsoftu i całymi dniami mam metaliczny posmak w ustach.

Team Foundation Server 2010 jest oprogramowaniem które podczas działania nie sprawia zazwyczaj żadnych problemów. Jest tak również przy instalacji i po standardowej konfiguracji. Z punktu widzenia administratora jest to oprogramowanie niemalże bezobsługowe. Wydawało by się że taki ideał musi mieć jakiś haczyk… i ma 😉 Gdy spróbujemy zrobić z nim coś więcej, spróbujemy go przystosować do naszych potrzeb, choćby w najmniejszym stopniu zaczynają się z nim dziać niesamowite rzeczy. Jest jak na roller coasterze po kwasie.

Dzisiaj na tapecie problem czerwonego krzyżyka (Red cross/Red X) przy dokumentach/raportach na portalu SharePoint w TFS 2010. Może się to zdążyć z 4 powodów.

Brak uprawnień na portalu SharePoint – uprawnienia są niezależne od TFS, trzeba do dokumentów dodać użytkownika bezpośrednio na portalu. Wykonujemy to wchodząc na stronę SharePoint, tam do zakładki (po prawej stronie) Site Actions –> Site Settings -> People and Groups i New. Dodajemy naszych userów i ustawiamy im odpowiednie parametry i zaczynają mieć dostęp do dokumentów zarówno poprzez portal SharePoint jak i menu w Visual Studio. Analogicznie jest z raportami. Tam uprawnienia nie są również współdzielone z TFS. Trzeba je ustawić ręcznie.

Druga sprawa to cache w Visual Studio 2010 na komputerze użytkownika. Wyczyszczenie go niestety usuwa również prywatne ustawienia VS. Do wykonania tego należy wyłączyć wszystkie instancje VS i wywalić z  katalogu (Windows 7) C:\Users\maciej\AppData\Local\Microsoft\Team Foundation wszystkie katalogi. Oraz uruchomić konsolę Visual Studio – Start -> All Programs -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt (2010) i wywolać komendę devenv /resetuserdata.

Nie mamy dostępu. To może wydać się zupełnie szalone, bo mimo iż mamy dostęp do strony WSS, oraz do projektu poprzez VS, posiadamy również pełne uprawnienia to jednak wciąż nie mamy dostępu. Dzieje się tak bo w lokalizacji zewnętrznej nie jest dostępny np. portal SharePoint, albo RaportServer. Jak sprawić żeby strony te były dostępne na świecie macie tutaj: http://www.tjopsta.net/index.php/2010/04/16/how-to-change-team-foundation-server-2010-urls-for-use-externally/.

Nie mamy dostępu part two! Otóż nawet jak ustawimy dostęp, wszystko zadziała na naszych stacjach to dalej możemy nie mieć dostepu przez VS. Zajeło mi ze dwa dni żaby to wytropić. TFS gada z VS porzez http. Używa różnych skomplikowanych zapytań HTTP do komunikacji z webservicami SharePointa. Sypie miedzy innymi takimi oto błędami:

TFS2010 The request failed with HTTP status 417: Expectation Failed

Oznacza to że gdzieś po drodze do waszego TFS macie proxy. A ono ma problem z obsługa tzw. Expect 100-Continue zapytań. Możecie spróbować w pliku C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.conf pomiędzy znacznikami <configuration> </configuration> dorzucić:

<system.net>
<settings>
<servicePointManager expect100Continue=”false” />
</settings>
</system.net>

U mnie to nie pomogło, ale może coś schrzaniłem. Generalnie wystarczy wyłączyć dostęp przez Proxy i wszystko zaczyna magicznie działać.

Acha i może coś jeszcze. Pytanie jak zmusić VS do debuga? Otóż do wcześniej wspomnianego pliku – C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.conf pomiędzy znacznikami <configuration> </configuration> dorzucić:

<system.diagnostics>
<switches>
<add name=”TeamFoundationSoapProxy” value=”4″ />
<add name=”VersionControl” value=”4″ />
</switches>
<trace autoflush=”true” indentsize=”3″>
<listeners>
<add name=”myListener”
type=”Microsoft.TeamFoundation.TeamFoundationTextWriterTraceListener,Microsoft.TeamFoundation.Common, Version=10.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” initializeData=”D:\backup\tf.log” />
<add name=”perfListener” type=”Microsoft.TeamFoundation.Client.PerfTraceListener,Microsoft.TeamFoundation.Client,
Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />
</listeners>
</trace>
</system.diagnostics>

Gdzie D:\backup\tf.log to ścieżka do loga… Komentarze mile widziane 😀

About the author

Bloger i niezależny konsultant z wieloletnim doświadczeniem w branży IT. Specjalizujący się w wirtualizacji i cloud computingu. Posiada tytuły MCP, MCTS, VCP oraz VMware vExpert.

Leave a Reply