ぐっぴーさん、
おかしいですね。
TCGIRequest.GetFieldByName("PATH_INFO") の結果が空になるのでしょうか?
(1)他の変数、たとえば、REMOTE_ADDR や REQUEST_METHOD なども空でしょうか?
(2)DLL の呼び出しは URLに xxxx.DLL/path/info のようにエキストラパスをつけるやりかたでしょうか? それとも、拡張子に対しる実行プログラムとしてその DLL を指定するやりかたでしょうか?
お世話かけます
isapi.logにはエラーは出ていない様です。
取り込み部分は以下の様になっています。
function TCGIRequest.GetFieldByName(const Name: string): string;
var
Buffer: array[0..4095] of Char;
function StripHTTP(const Name: string): string;
begin
if Pos('HTTP_', Name) = 1 then
Result := Copy(Name, 6, MaxInt)
else Result := Name;
end;
begin
SetString(Result, Buffer, GetEnvironmentVariable(PChar(Name), Buffer, SizeOf(Buffer)));
if Result = '' then
SetString(Result, Buffer, GetEnvironmentVariable(PChar(StripHTTP(Name)), Buffer, SizeOf(Buffer)));
end;
宜しくお願い致します。
ぐっぴーさん、
ISAPIの本家に比べると AN HTTPD の ISAPIのサポートレベルはかなり低いです。
isapi.log をとってみて、何かエラーメッセージは出ていませんでしょうか?
また、
PATH_INFO の取得は、(1)ECB (2)GetServerVariable (3)GetEnvironmentVariable (4)getenv のいずれでしょうか?
POST の標準入力の取得はどうやっているのかお知らせ下さい。特に読み込みの長さの指定はどうされているでしょうか?
HttpExtensionProc の実行内容部分のソース(の要点)をお知らせ下さるのでも結構です。
はじめまして
DelphiでISAPIでDLLを作成しているのですが、
IISでは正常に取得出来るPATH_INFOが取得
できません。また、POSTで文字列を取得した場合
最後にごみが入る場合があるのですが、入る
文字列は"process.log"とかなので習得文字数
が多くて後のメモリまで参照しているのか
なと思うのですが私の環境だけしょうか?
やっぱり自分で標準入力から取ってくる
ルーチンを組まないといけないのでしょうか?