얼마 전에, 인터넷으로부터 HTTPS를 통한 Team Server 접근을 다뤄봤는데요.
TFS : 2-2. 두 번째 방법 - HTTPS를 통한 Team Server 접근
;
https://www.sysnet.pe.kr/2/0/273
지난번 설정에 이어서, 설명을 진행해 나가도록 하겠습니다.
실제로, 위와 같이 설정을 하고 나서 인터넷에서 접근을 하게 되면 아래 화면과 같이 "Work Items", "Team Builds", "Source Control"만을 정상적으로 사용할 수 있고, 나머지 "Documents", "Reports" 부분은 여전히 사용할 수가 없습니다. 그림에서도 자세히 보면, 폴더 아이콘에 빨간색으로 "x" 마크가 있는 것을 확인할 수 있습니다.
이유는 분명하지요. ^^ URL이 잘못되어 있기 때문입니다. 해당 노드를 클릭하고 속성창을 보게 되면 다음과 같은 값들로 되어져 있습니다.
Documents : http://WIN2003BASE/sites/WebTool
Reports : http://Win2003Base/Reports/Pages/Folder.aspx?ItemPath=/WebTool
Documents 쪽은 WSS 사이트이고, Reprots 쪽은 SQL Server Reporting Service 설치로 생성된 Reports 웹 가상 애플리케이션 경로입니다.
자, 그럼 이 경로를 수정해 주면 되는데요.
문제는 어디서 수정을 해줘야 하느냐 인데요. ^^ 안타깝게도 레지스트리나 기타 web.config 파일 등에는 그와 관계된 설정이 없었습니다. 할 수 없이, 최후의 수단으로 SQL Database를 살펴보기 시작했는데요. 직관적인 생각으로, ^^ 아래와 같은 테이블까지 찾아갈 수 있었습니다.
Database : TfsIntegration
Table : tbl_service_interface
위의 그림에서 하늘색으로 표시된 항목들인데요. 저 같은 경우 다음과 같이 수정을 했습니다.
ReportsService : https://www.sysnet.pe.kr:8090/ReportServer/ReportService.asmx
BaseReportsUrl : https://www.sysnet.pe.kr:8090/Reports
BaseServerUrl : https://www.sysnet.pe.kr:8090
BaseSiteUrl : https://www.sysnet.pe.kr:8090/sites
미리 말씀드리지만, 위의 항목 중에서 변경하지 않아도 되는 항목이 있을 것도 같지만, 일일이 하나하나 테스트해 보기엔 시간이 너무 아까우므로 모두 변경을 했습니다. 또한, 위와 같이 값을 바꾼 경우 (일단, 저는 잘 되었지만.) 향후 TFS 서버 시스템에 어떤 문제가 있을지 ^^ 저는 장담할 수 없습니다. 어쨌든 MS 문서에서 이렇게 하라고 찾아낸 것은 아니기 때문에.
위와 같이 적용하고 Team Explorer를 이용해서 접근을 하게 되어도 여전히 클라이언트 측에서는 예전 주소가 나타나게 됩니다. 이유는 이미 이전 토픽에서 말씀드렸는데요. 설정값들에 대한 캐시가 남아있기 때문입니다.
그래서, 다음의 폴더를 삭제한 후 다시 Team Explorer를 구동시키면 정상적으로 Reports / Documents 폴더를 사용하실 수가 있습니다.
Vista 이전:
C:\Documents and Settings\[사용자 계정]\Local Settings\Application Data\Microsoft\Team Foundation\1.0\Cache
Vista 이후:
C:\Users\[사용자 계정]\AppData\Local\Microsoft\Team Foundation\1.0\Cache
(해당 Reports나 Documents 설정에 대한 값을 담고 있는 파일은 위의 폴더로부터 GUID 값으로 하위 폴더가 생성되어져 있을 텐데, 그 폴더 안의 RegProxyFileCache.xml에 있습니다. 사실, 이 파일의 내용만 적절히 수정해도 상관은 없습니다.)
그렇게 모든 작업을 완료하고, Team Explorer를 구동시키면 다음 화면과 같이 인터넷에서도 정상적으로 접근이 되는 것을 확인할 수 있습니다.
No | Writer | Date | Cnt. | Title | File(s) |
11895 | 정성태 | 5/12/2019 | 22596 | .NET Framework: 832. ML.NET Model Builder - 회귀(Regression), 다중 분류(Multi-class classification) 예제 | 1 |
11894 | 정성태 | 5/10/2019 | 24544 | VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [5] | |
11893 | 정성태 | 5/10/2019 | 20605 | 오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면? | |
11892 | 정성태 | 5/10/2019 | 20501 | 웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231) | |
11891 | 정성태 | 5/9/2019 | 23635 | .NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles | |
11890 | 정성태 | 5/8/2019 | 19306 | 개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록 | |
11889 | 정성태 | 5/8/2019 | 19379 | 개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법 | |
11888 | 정성태 | 5/8/2019 | 37288 | .NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드 [1] | 1 |
11887 | 정성태 | 5/8/2019 | 23094 | .NET Framework: 829. C# - yield 문을 사용할 수 있는 메서드의 조건 | |
11886 | 정성태 | 5/7/2019 | 20159 | 오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 [2] | |
11885 | 정성태 | 5/7/2019 | 17624 | 오류 유형: 533. mstest.exe 실행 시 "File extension specified '.loadtest' is not a valid test extension." 오류 발생 | |
11884 | 정성태 | 5/5/2019 | 22553 | .NET Framework: 828. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 두 번째 이야기 | |
11883 | 정성태 | 5/3/2019 | 27538 | .NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법 | 1 |
11882 | 정성태 | 5/2/2019 | 24027 | .NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles | 1 |
11881 | 정성태 | 4/28/2019 | 24130 | 오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생 | |
11880 | 정성태 | 4/25/2019 | 19862 | 오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547 | |
11879 | 정성태 | 4/24/2019 | 28768 | .NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others | 2 |
11878 | 정성태 | 4/22/2019 | 24049 | .NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff | 1 |
11877 | 정성태 | 4/22/2019 | 24252 | .NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas | 1 |
11876 | 정성태 | 4/21/2019 | 22511 | .NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others | 1 |
11875 | 정성태 | 4/21/2019 | 24338 | 오류 유형: 530. Visual Studo에서 .NET Core 프로젝트를 열 때 "One or more errors occurred." 오류 발생 | |
11874 | 정성태 | 4/20/2019 | 24377 | .NET Framework: 821. (번역글) .NET Internals Cookbook Part 6 - Object internals | 1 |
11873 | 정성태 | 4/19/2019 | 23053 | .NET Framework: 820. (번역글) .NET Internals Cookbook Part 5 - Methods, parameters, modifiers | 1 |
11872 | 정성태 | 4/17/2019 | 23930 | .NET Framework: 819. (번역글) .NET Internals Cookbook Part 4 - Type members | 1 |
11871 | 정성태 | 4/16/2019 | 21809 | .NET Framework: 818. (번역글) .NET Internals Cookbook Part 3 - Initialization tricks [3] | 1 |
11870 | 정성태 | 4/16/2019 | 20692 | .NET Framework: 817. Process.Start로 실행한 콘솔 프로그램의 출력 결과를 얻는 방법 | 1 |