말씀하신 내용들로 봐서는, 권한 문제일 가능성이 대단히 높아보입니다.
윈도우 ME에서 PWS로는 아무 문제가 없는데 XP에서 IIS로 돌리면 에러가 난다고 하셨지요.
ME에서는 권한 개념이 제대로 없지만 XP는 NT 계열이기 때문에 파일의 실행 권한을 깐깐하게 따집니다.
IIS는 웹으로 접속한 사용자를 'IUSER_컴퓨터이름' 이라는 계정에서 실행시키는데, 이건 인터넷 게스트 계정이라는 것으로 IIS에서 관리하는 계정입니다. 게스트라는 이름 그대로 권한이 엄청나게 낮아서 로컬 파일들을 전혀 액세스할 수 없으며 특별히 허용된 파일들만 액세스할 수 있습니다. 그 액세스의 종류(읽기, 쓰기, 실행 등)에도 민감하구요.
간단히 한 마디로 말하자면, ISAPI dll 그 자체는 물론, 그 dll이 액세스해야 하는 모든 파일들(외부 의존 dll이나 템플릿 html 파일이나 기타 등등)은 모두 'IUSER_컴퓨터이름' 혹은 'Everyone' 계정에 대해 필요한 권한이 있어야 합니다. 이건 ISAPI dll에만 해당되는 것이 아니라, asp 등 다른 웹 서버 프로그램의 경우에도 마찬가지입니다.
예를 들면, ISAPI dll을 런타임 패키지를 사용하도록 빌드했다면 vclxx.bpl 등의 VCL 패키지 파일들이 필요하므로 해당 패키지 파일들에 IUSER_컴퓨터이름 계정의 액세스 권한이 있어야 합니다.
단, TCP/IP 통신을 하는 인터베이스 파일은 무관합니다. 파일 접근이 아니라 네트워크 접근을 하니까요.
그럼...
marinfo 님이 쓰신 글 :
: 제가 지금 바보같은 짓을 하고 있다는 생각을 많이 합니다만,
: 혹시라도 다른 분에게 도움될지 몰라서 (사실은 도움을 받고 싶어서^^)
: 겪은 일을 씁니다.
:
: Interbase 와 연동되는 web program 을 시도했고,
:
: 형식을 .exe (CGI model)와 .dll (ISAPI model) 로 두 가지 모두 해 봤는데,
:
: - XP를 Interbase & web server 로 사용하고,
: - Windows ME 를 Interbase & web server 로 사용해 봤습니다.
: (물론 둘다 실제 서버로 사용할 건 아닙니다. 테스트용.)
:
: .exe 파일은 XP 나 Windows ME 양 쪽에서 다 잘 됩니다.
:
: .dll 로 컴파일해 본 결과 ME 는 되는데, XP 에서는 안됩니다. "페이지를 표시할 수 없습니다"..
: 라고 나옵니다. (참고로, Interbase 아니고 paradox 테이블 이용하면, XP 에서 .dll 도 문제없습니다).
:
: 그래서 혹시나 하고, ME 를 Interbase 서버로 사용하고, webserver 는 XP 를 사용해 보니,
: .dll 파일도 문제없이 작동됩니다.
:
: 다른 분들도 비슷한 문제를 경험하신 적이 있으신지? 아니면 제가 갖고 있는 PC 들의
: 설정이 좀 특이해서 그렇다고 봐야 할 지? 이유를 아시는 분은 알려주시면 감사하겠습니다.
: "해결?" 이라면 해결이겠지만, 허탈하다는 느낌도 들고 그러네요.
|