드디어... VSS 2005에서 HTTP를 통한 소스 컨트롤 기능이 생겼습니다.
그렇다고 해서, 아쉬운 점이 없는 것은 아닙니다.
이름 변경, 삭제, 히스토리, 라벨링 등의 기능은 "over HTTP"로는 지원되지 않습니다.
데이터베이스 열기, 추가, 체크인, 체크아웃, 가져오기 정도 뿐이죠.
그래도... 그게 어디입니까... ^^
80 포트를 통한 방법은... 아시는 데로 하면 됩니다.
여기서는 그 이외의 포트로 제어하는 방법을 설명하겠습니다.
1. [서버측] VSS Admin에서 "Server/Configuration" 메뉴를 선택해 다음과 같이 설정합니다. 주의할 것은 마지막에 ":5901"을 꼭 붙이셔야 합니다.
2. [서버측] IIS 관리자에서 "SourceSafe" 가상 애플리케이션이 있는 사이트의 포트를 변경합니다. 여기서는 "5901"로 지정합니다. 물론, 별도의 웹 사이트를 만들고 거기에서 "SourceSafe" 가상 애플리케이션을 만드셔도 무방합니다.
3. [클라이언트측] 아래의 화면과 같이 입력해 줍니다. 이때 반드시 "http://"를 앞에 포함해 주어야 하고 asmx 파일까지 모든 경로를 적어주어야 합니다. 80 포트인 경우에는 단순히 "www.sysnet.pe.kr"만 입력하면 되지만, 포트가 변경이 된 경우에는 "https://www.sysnet.pe.kr:5901/SourceSafe/VssService.asmx"까지 적어 주어야 합니다.
4. [클라이언트측] 굳이 3번과 같이 등록하지 않고, 레지스트리를 직접 조작해도 무방합니다. 결국 설정하면 아래와 같은 레지스트리 항목이 생길 뿐입니다.
참고로, 위의 "1번" 과정에서 포트까지 모두 적어주지 않고 단지 "www.sysnet.pe.kr"이라고만 지정한 경우에는 VS.NET 2005 IDE의 소스 제어 메뉴에서 "Internet"이 아닌 일반 모드로 갔다가 다시 "Internet" 모드로 오면 아래 화면에서 보는 것처럼 ":5901"이 삭제되어 버립니다.
Title |
11166 | 정성태 | 3/28/2017 | 23109 | 오류 유형: 382. System.Data.SqlClient.SqlException - Arithmetic overflow error converting IDENTITY to data type int. | |
11165 | 정성태 | 3/27/2017 | 25800 | 오류 유형: 381. Visual C++에서 min, max 함수를 사용한 경우 C2589, C2059 컴파일 오류 발생 | |
11164 | 정성태 | 3/27/2017 | 34555 | VC++: 111. C++ 클래스의 상속에 따른 메모리 구조 [2] | 1 |
11163 | 정성태 | 3/25/2017 | 24081 | VC++: 110. CreateThread Win32 API에 C++ 클래스의 멤버 함수를 전달하는 방법 | 1 |
11162 | 정성태 | 3/24/2017 | 28867 | 오류 유형: 380. Visual Studio 빌드 실패 - The OutputPath property is not set for project | |
11161 | 정성태 | 3/24/2017 | 19055 | 오류 유형: 379. ICOMAdminCatalog.GetCollection 호출 시 0x80070422 예외 발생 | |
11160 | 정성태 | 3/23/2017 | 26116 | .NET Framework: 649. ASP.NET - Server cannot append header after HTTP headers have been sent. (HTTP 헤더를 보낸 후에는 서버에서 헤더를 추가할 수 없습니다.) | 1 |
11159 | 정성태 | 3/23/2017 | 23336 | Windows: 136. Memory-mapped File은 Private Bytes 크기에 포함될까요? | 1 |
11158 | 정성태 | 3/22/2017 | 21425 | 디버깅 기술: 85. Windbg - SOS 디버깅 사례 System.NullReferenceException 예외 추적 | |
11157 | 정성태 | 3/22/2017 | 24561 | .NET Framework: 648. Dictionary<TKey, TValue>를 deep copy하는 방법 | 1 |
11156 | 정성태 | 3/21/2017 | 26768 | .NET Framework: 647. 닷넷(C#) 코드로 인증서 요청 코드 만드는 방법 | 1 |
11155 | 정성태 | 3/21/2017 | 27189 | .NET Framework: 646. SslStream의 CipherAlgorithm 선택이 가능할까요? | 1 |
11154 | 정성태 | 3/5/2017 | 32418 | VC++: 109. DLL에서 STL 객체를 인자/반환값으로 갖는 함수를 제공할 때, 그 함수를 외부에서 사용하는 경우 비정상 종료한다면? [2] | 1 |
11153 | 정성태 | 3/5/2017 | 32725 | VC++: 108. DLL에 정의된 C++ template 클래스의 복사 생성자 문제 | 1 |
11152 | 정성태 | 3/4/2017 | 28091 | VC++: 107. VirtualAlloc, HeapAlloc, GlobalAlloc, LocalAlloc, malloc, new의 차이점 [1] | 1 |
11151 | 정성태 | 3/3/2017 | 27247 | VC++: 106. DLL 개발자가 주의해야 할 Secure CRT 함수 사용 [1] | 1 |
11150 | 정성태 | 2/21/2017 | 22976 | .NET Framework: 645. Visual Studio Fakes 기능에서 Shim... 클래스가 생성되지 않는 경우 [5] | |
11149 | 정성태 | 2/21/2017 | 26903 | 오류 유형: 378. A 64-bit test cannot run in a 32-bit process. Specify platform as X64 to force test run in X64 mode on X64 machine. | |
11148 | 정성태 | 2/20/2017 | 26172 | .NET Framework: 644. AppDomain에 대한 단위 테스트 시 알아야 할 사항 | |
11147 | 정성태 | 2/19/2017 | 23540 | 오류 유형: 377. Windows 10에서 Fake 어셈블리를 생성하는 경우 빌드 시 The type or namespace name '...' does not exist in the namespace 컴파일 오류 발생 | |
11146 | 정성태 | 2/19/2017 | 24046 | 오류 유형: 376. Error VSP1033: The file '...' does not contain a recognized executable image. [2] | |
11145 | 정성태 | 2/16/2017 | 25645 | .NET Framework: 643. 작업자 프로세스(w3wp.exe)가 재시작되는 시점을 알 수 있는 방법 - 두 번째 이야기 [4] | 1 |
11144 | 정성태 | 2/6/2017 | 28791 | .NET Framework: 642. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (부록 1) - CallingConvention.StdCall, CallingConvention.Cdecl에 상관없이 왜 호출이 잘 될까요? | 1 |
11143 | 정성태 | 2/5/2017 | 26967 | .NET Framework: 641. [Out] 형식의 int * 인자를 가진 함수에 대한 P/Invoke 호출 방법 | 1 |
11142 | 정성태 | 2/5/2017 | 34090 | .NET Framework: 640. 닷넷 - 배열 크기의 한계 [2] | 1 |
11141 | 정성태 | 1/31/2017 | 28967 | .NET Framework: 639. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (4) - CLR JIT 컴파일러의 P/Invoke 호출 규약 [1] | 1 |