2014년 6월 30일 월요일

64bit 윈도우에서 네트워크 드라이브를 이용한 32bit 웹 페이지를 구동할 경우

1. 조건
    가. 64비트 OS에서 운영된다.
    나. 32비트 응용프로그램 (DLL)을 사용한다.
    다. 웹파일 디렉토리는 네트워크 드라이브를 사용한다.
    라. asp, aspx 웹사이트이다.
    마. 닷넷 프레임 2.0기반으로 개발/구동된다.


2. 설정내용
    가. 32비트 응용프로그램을 구동하기 위해서 다음 항목들의 설정을 변경해야 한다.
      1) IIS > 응용 프로그램 풀 > 일반 > 32비트 응용 프로그램 사용 값을 "True"로 설정한다
      2) IIS > 기능 보기 > 처리기 매핑 > *.html 등 응용프로그램 확장자의 스크립트 매핑을 추가 해준다 이때 32비트에서 정상작동 할 수 있도록 실행파일 경로를 "C:\Windows\SysWOW64\inetsrv\asp.dll"로 해준다. "SysWOW64"로 해주지 않으면 정상적으로 구동이 안된다.
    나. 닷넷 프레임 2.0 기반일 경우 응용프로그램 풀을 변경 하거나 Classic .Net AppPool을 사용하도록 한다.
    다. 네트워크 드라이브를 사용하여 응용프로그램을 운영할 경우에는 응용 프로그램 풀의 권한을 네트워크 드라이브 접근권한과 동일하게 부여 하여야 한다. (별도의 계정을 생성 후 읽기/실행 권한만 부여한다)
      1) IIS > 기능 보기 > 응용 프로그램 풀 > 프로세스 모델 > ID > 사용자 지정 계정 > 사용자 추가

3. 이도 저도 다했는데 
지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E)

이런 에러 메시지가 나타나면 DLL 파일 중 사용하지 않는 것이 있는지 찾아봐라...
DLL을 하나씩 빼면서 확인해보든지... 다시 컴파일 하든지..

버전이 다른 Windows 서버에서 네트워크 부하 분산 관리자(NLB)가 수렴되지 않을 경우

* 문제 : NLB (네트워크 부하 분산)를 구성 후, 상위버전의 윈도우서버(2008 R2)에서는 NLB 클러스터 구성 목록에서는 하위 버전의 윈도우 클러스터 호스트가 나타나고 정상 수렴 되지만 하위버전 윈도우서버(2008)에서는 상위버전의 클러스터 호스트 정보가 정상적으로 나타나지 않아 정상적으로 추가 할 수 없다.
  - 에러코드 : "{XXXX}" 인터페이스의 구성을 읽지 못했습니다. 오류 0x80041008


* 원인 : NLB 구성 시 윈도우버전이 다를 경우 정상작동을 하지 않는다

* 해결책 :  윈도우 버전을 최상위 버전에 맞추거나 취하위 버전으로 맞추어 줘야 한다.