2011-04-20 15 views
0

Intraweb ISAPI 응용 프로그램을 만들었습니다. DLL을 작성한 후 IIS에 웹 사이트를 만들고 응용 프로그램 풀을 만들었습니다. Inetpub 디렉터리에서 인터넷 게스트 계정 및 IIS_WPG 계정에 대한 사용 권한이 설정됩니다.IIS에서 Delphi Intraweb 웹 사이트 오류가 발생했습니다

내가 IE (http://ip.0.0.1/website/application.dll)에서 웹 페이지에 액세스하기 위해 노력하고있어 그것이 나에게 HTTP 500 또는

enter image description here

오류를 반환합니다. 인터넷에서 검색 한 후 COM 초기화의 문제라고합니다. 그러나 응용 프로그램의 데이터 모듈에는 다음 코드가 있습니다.

initialization 
    CoInitialize(nil); 

finalization 
    CoUninitialize; 

누구든지 조언을 줄 수 있습니까?

답변

2

자신의 CoInitliaze 호출을 사용하지 말고 ServerController를 instread하고 ComInitialization 속성을 ciMultiThread로 설정하십시오.

내 IntraWeb 교육용 설명서 : "응용 프로그램에서 (D) COM을 사용해야하는 경우 TComInitialization 유형의 ComInitialization 속성 (ciNone, ciNormal, ciMultiThread)이 필요합니다. IntraWeb은 다른 스레드에서 요청을 실행하므로 각 스레드는기본적으로이 속성은 ciNone으로 설정되어 COM 지원이 필요 없음을 나타내며, COM 지원이 필요한 경우 (예 : DataSnap 서버에 연결하려는 경우) ComInitialization을 다음과 같이 설정해야합니다. ciNormal or ciMultiThreaded. IIS 6 이상이 이미 필요한 ComInitialization을 처리 할 수 ​​있지만 개인적으로 COM과 함께 또는 다른 방법으로 ISAPI DLL에서 작업 할 때 ciMultiThreaded로 설정할 이유가 없습니다. ciNone으로 설정하십시오 (단, 다른 값으로 설정하면 무시되므로 ciMultiThread도 문제가되지 않습니다.)