2014-09-19 5 views
0

RemObjects를 사용하는 웹 서비스와 Delphi XE를 사용하는 TROIndyHTTPServer가 있습니다. 클라이언트가 웹 서비스 작업을 실행 중일 때 액세스 위반을 생성하지 않고 수동으로 응용 프로그램을 닫는 방법을 모르겠습니다. 작업을 실행중인 웹 서비스의 스레드 인 을 중단하는 방법을 모르겠습니다. 응용 프로그램을 닫으면 가끔씩 EXE가 무기한으로 실행되어 액세스 위반이 발생합니다. 도움RemObjects Indy Http Server를 올바르게 닫으십시오.

+0

당신이해야 할 일은 응용 프로그램이 닫히고 응용 프로그램이 닫히기 전에 웹 서버 작업을 중단하려고 할 때 감지하는 mechanizm을 구현하는 것입니다. 이것을 정확히 달성하는 방법은 현재 코드에 달려 있습니다. 응용 프로그램에서 어떤 종류의 루프가 있다고 가정합니다. 그렇다면 IsClosing와 같은 전역적인 bloan 변수를 만들고 루프의 모든주기에 대한 상태를 확인하십시오. 하지만 좀 더 광범위한 도움을 주시면 코드 몇 가지를 보여 주셔야합니다. – SilverWarior

+0

@SilverWarrior는 종료 플래그를 확인하는 것이 도움이 될 수 있지만 장기 실행 작업이 시작된 후에 플래그가 설정되면 더 이상 감지되지 않습니다 – mjn

답변

0

인디 HTTP/TCP 서버 (일반적으로) 서버가 종료 될 때 클라이언트가 현재 요청을 완료 할 수 있습니다에 대한

감사 (활성 설정하여 : = 거짓).

장기 실행 요청으로 인해이 문제가 발생하는 경우이를 재현하고 디버거를 사용하여 AV를 자세히 분석 할 수 있어야합니다.