본문 바로가기
서버/윈도우즈 & 맥

DataSnap REST Application ISAPI 배포 - IIS 7.5

by 사악신 2012. 6. 5.

1. IIS 에서 ISAPI 사용 설정


IIS 관리자의 ISAPI 및 CGI 제한을 더블클릭한다.



기능 설정 편집... 을 클릭한 후, 지정하지 않은 ISAPI 모듈 허용을 선택한다.




2. IIS 가상 디렉토리 설정



별칭(Alias)을 지정한다.




해당 실제 경로에는 빌드된 파일들이 위치하고 있다.



추가된 Alias 를 선택한 후 응용 프로그램으로 변환을 실행한다.



응용 프로그램 추가 창이 뜨면 확인 버튼을 클릭한다.




3. 응용 프로그램 풀 검사


응용 프로그램 풀을 선택하고 DefaultAppPool 을 선택한 다음, 고급 설정을 클릭한다.



빌드한 DLL 이 32 비트인 경우, 일반 탭의 32비트 응용 프로그램 사용을 True 로 변경한다.




프로세스 모델의 ID 를 선택하고, 지정된 값이 ApplicationPoolIdentity 인지 확인하고 아닌 경우 우측 버튼을 눌러 해당 값을 지정한다.






4. js 디렉토리에 IIS User 쓰기 권한 추가


DataSnap REST Server 가 실행되면서 JavaScript 를 생성한다. 관련 소스는 다음과 같으며, 해당 디렉토리(js)에 대하여 쓰기 권한이 있어야한다.


### delphi
procedure TWebModule1.WebFileDispatcher1BeforeDispatch(Sender: TObject;
const AFileName: string; Request: TWebRequest; Response: TWebResponse;
var Handled: Boolean);
var
D1, D2: TDateTime;
begin
Handled := False;
if SameFileName(ExtractFileName(AFileName), 'serverfunctions.js') then
if not FileExists(AFileName) or (FileAge(AFileName, D1) and FileAge(WebApplicationFileName, D2) and (D1 < D2)) then
begin
DSProxyGenerator1.TargetDirectory := ExtractFilePath(AFileName);
DSProxyGenerator1.TargetUnitName := ExtractFileName(AFileName);
DSProxyGenerator1.Write;
end;
end;


js 디렉토리의 속성창을 띄운다.





보안 탭을 선택하고 편집 버튼을 클릭한 후, 사용 권한 창이 뜨면 추가 버튼을 클릭한다.



사용자 또는 그룹 선택 창에서 IIS AppPool\DefaultAppPool 을 입력한 후 이름 확인 버튼을 클릭하면, DefaultAppPool 로 변경된다. 확인 버튼을 클릭한다.



쓰기 권한을 체크한다.




확인 버튼을 클릭한다.



5. 가상 디렉토리 인증 설정


가상 디렉토리를 선택하고 인증을 더블 클릭하거나, 인증을 선택 후 기능 열기를 클릭한다.



익명 인증을 선택하고 편집...을 클릭한 후, 익명 인증 자격 증명 편집 창이 뜨면 응용 프로그램 풀을 선택하고 확인 버튼을 클릭한다.




6. 접속확인


웹브라우저를 실행하고 연결 테스트를 한다. 아래의 경우 IIS 서버의 기본 홈페이지 포트가 9090 으로 설정되어 있으며 해당 포트에 접근이 가능하도록 방화벽에 인바운드/아웃바운드 규칙이 추가되어있는 상태이다.




만약, dll 이 실행되지 않고 다운로드가 된다면... IIS 관리자 홈에서 처리기 매핑을 더블 클릭한다. 아래와 같이 ISAPI-dll 이 사용 안 함으로 되어있으면, 기능 사용 권한 편집...을 클릭한 후 실행을 체크한다. 자동으로 사용으로 전환될 것이다. 이후 다시 테스트한다.



끝~


반응형

댓글