.NET 2.0 Web App에서는 기본적으로 (가상) Root 웹 사이트를 만들어서 개발하게 됩니다. 개발 후에는 "Publish Web Site"를 통해서 배포를 할 수 있는데, 이때 대상 컴퓨터를 "
http://192.168.1.200"과 같이 지정하는 경우, "FrontPage Server Extension 2002"가 (대상) 컴퓨터에 설치되어 있어야 합니다.
기본적으로 FPSE2003는 Windows 2003 Server (x64) 버전에는 누락되어 있습니다. 따라서, 무엇보다도 FPSE2003 for x64를 구해서 설치해야 하는데, 이는 아래의 웹 사이트에서 쉽게 다운로드 할 수 있습니다.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservext02/fpse2002win.asp
위의 페이지에는 x86, x64 두 가지 버전에 대해서 FPSE를 다운로드할 수 있습니다.
자... 문제는 이제부터 시작입니다. ^^
우선, FPSE2003(x64)는 x64 운영체제에서 설치된다는 점만 다를 뿐, 해당 운영 환경 자체는 여전히 32bit 모듈이라는 점입니다. 따라서, IIS의 AppPool 설정을 32bit emulation mode로 바꿔주어야 합니다. 이에 대한 자세한 내용은 다음 URL을 참고합니다.
http://support.microsoft.com/kb/891314
우여곡절 끝에 위와 같이 해서 32bit 모드로 FPSE2003(x64)를 구동시켰으면, 이제 테스트를 해봅니다. VS.NET 2005에서 "Publish Web Site"를 통해서 정상적으로 배포가 되는 것을 확인할 수 있습니다.
그런데... ^^ 이쯤에서 눈치채신 분이 계시겠지만... 그렇게 되면, Web Application은 32bit로 운영되게 됩니다. 작업관리자에서 "w3wp.exe"를 확인해 보면, "w3wp.exe*32"로 되어 있는 것을 확인할 수 있습니다. 즉, x64 머신에서 FPSE2003 때문에 32bit 모드로 웹 애플리케이션이 운영된다는 것입니다.
.....................................
좀 멀리, 얘기가 돌아왔는데... 결론은, 배포의 편리함을 위해 FPSE2003(x64)를 굳이 설치할 필요는 없다는 것입니다. VS.NET 2005의 "Public Web Site"를 하실 때, 차라리 네트워크 드라이브 연결등을 통한 방식으로 배포 문제를 해결하십시오.
어쨌든, 다른 목적으로 반드시 FPSE2003(x64)를 설치해야 한다면, Enable32bitAppOnWin64="True"로 설정하셔야 합니다. (IIS Metabase를 직접 수정해 주셔도 무방합니다.)
Title |
11166 | 정성태 | 3/28/2017 | 23072 | 오류 유형: 382. System.Data.SqlClient.SqlException - Arithmetic overflow error converting IDENTITY to data type int. | |
11165 | 정성태 | 3/27/2017 | 25750 | 오류 유형: 381. Visual C++에서 min, max 함수를 사용한 경우 C2589, C2059 컴파일 오류 발생 | |
11164 | 정성태 | 3/27/2017 | 34522 | VC++: 111. C++ 클래스의 상속에 따른 메모리 구조 [2] | 1 |
11163 | 정성태 | 3/25/2017 | 24003 | VC++: 110. CreateThread Win32 API에 C++ 클래스의 멤버 함수를 전달하는 방법 | 1 |
11162 | 정성태 | 3/24/2017 | 28823 | 오류 유형: 380. Visual Studio 빌드 실패 - The OutputPath property is not set for project | |
11161 | 정성태 | 3/24/2017 | 18983 | 오류 유형: 379. ICOMAdminCatalog.GetCollection 호출 시 0x80070422 예외 발생 | |
11160 | 정성태 | 3/23/2017 | 26083 | .NET Framework: 649. ASP.NET - Server cannot append header after HTTP headers have been sent. (HTTP 헤더를 보낸 후에는 서버에서 헤더를 추가할 수 없습니다.) | 1 |
11159 | 정성태 | 3/23/2017 | 23316 | Windows: 136. Memory-mapped File은 Private Bytes 크기에 포함될까요? | 1 |
11158 | 정성태 | 3/22/2017 | 21390 | 디버깅 기술: 85. Windbg - SOS 디버깅 사례 System.NullReferenceException 예외 추적 | |
11157 | 정성태 | 3/22/2017 | 24528 | .NET Framework: 648. Dictionary<TKey, TValue>를 deep copy하는 방법 | 1 |
11156 | 정성태 | 3/21/2017 | 26721 | .NET Framework: 647. 닷넷(C#) 코드로 인증서 요청 코드 만드는 방법 | 1 |
11155 | 정성태 | 3/21/2017 | 27153 | .NET Framework: 646. SslStream의 CipherAlgorithm 선택이 가능할까요? | 1 |
11154 | 정성태 | 3/5/2017 | 32368 | VC++: 109. DLL에서 STL 객체를 인자/반환값으로 갖는 함수를 제공할 때, 그 함수를 외부에서 사용하는 경우 비정상 종료한다면? [2] | 1 |
11153 | 정성태 | 3/5/2017 | 32677 | VC++: 108. DLL에 정의된 C++ template 클래스의 복사 생성자 문제 | 1 |
11152 | 정성태 | 3/4/2017 | 28059 | VC++: 107. VirtualAlloc, HeapAlloc, GlobalAlloc, LocalAlloc, malloc, new의 차이점 [1] | 1 |
11151 | 정성태 | 3/3/2017 | 27233 | VC++: 106. DLL 개발자가 주의해야 할 Secure CRT 함수 사용 [1] | 1 |
11150 | 정성태 | 2/21/2017 | 22957 | .NET Framework: 645. Visual Studio Fakes 기능에서 Shim... 클래스가 생성되지 않는 경우 [5] | |
11149 | 정성태 | 2/21/2017 | 26882 | 오류 유형: 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 | 26150 | .NET Framework: 644. AppDomain에 대한 단위 테스트 시 알아야 할 사항 | |
11147 | 정성태 | 2/19/2017 | 23517 | 오류 유형: 377. Windows 10에서 Fake 어셈블리를 생성하는 경우 빌드 시 The type or namespace name '...' does not exist in the namespace 컴파일 오류 발생 | |
11146 | 정성태 | 2/19/2017 | 24015 | 오류 유형: 376. Error VSP1033: The file '...' does not contain a recognized executable image. [2] | |
11145 | 정성태 | 2/16/2017 | 25604 | .NET Framework: 643. 작업자 프로세스(w3wp.exe)가 재시작되는 시점을 알 수 있는 방법 - 두 번째 이야기 [4] | 1 |
11144 | 정성태 | 2/6/2017 | 28725 | .NET Framework: 642. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (부록 1) - CallingConvention.StdCall, CallingConvention.Cdecl에 상관없이 왜 호출이 잘 될까요? | 1 |
11143 | 정성태 | 2/5/2017 | 26805 | .NET Framework: 641. [Out] 형식의 int * 인자를 가진 함수에 대한 P/Invoke 호출 방법 | 1 |
11142 | 정성태 | 2/5/2017 | 34015 | .NET Framework: 640. 닷넷 - 배열 크기의 한계 [2] | 1 |
11141 | 정성태 | 1/31/2017 | 28901 | .NET Framework: 639. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (4) - CLR JIT 컴파일러의 P/Invoke 호출 규약 [1] | 1 |