さきほど質問したのですがAsp上で圧縮ファイルの解凍を行うプログラムを作ってます。
ただ問題が一個発生してましてた解凍dllが異常な状態になったとき、そのページが使えなくなってしまいます。
ですので「Aspで外部プログラム(dll)を呼び出した際に一定の時間処理が終了しない場合、
タイムアウトとしてそのプログラムを中止してもとのAspに戻る」ことは可能でしょうか?
参考までにいまのプログラムは下記のようになっています。
Application.Lockの記述も気になるのですが同時に処理が走るのもまずいと思い入れています。
できれば.netのProcess.waitForExit(10000)のような感じですね。
'アプリケーションをロック
Application.Lock
'ファイルシステムオブジェクト生成
if isempty(session("s3fs")) then
Set session("s3fs") = Server.CreateObject("Scripting.FileSystemObject")
end if
session("s3fs").CreateFolder("c:\hone")
(略)
'解凍用オブジェクトの作成
Set lha= Server.CreateObject("UnlhaCom.PublicUnlha")
'外部dllの実行
lha.Unlha 0,"e c:\hoge\test.lzh c:\hoge\",NUll,256
Set lha = Nothing
'アプリケーションを開放
Application.Unlock
ポイントはいりません。直接の回答でありません。
UnlhaCom を紹介した者ですが、ハメてしまったようで、すみません。
こちらのスレの最後を読みますと、「UnlhaCom」がアパートメントスレッドに対応していないため、不具合・・・とあります。
その他、こんな情報も。
そこで、他のActiveX DLL を探してみましたら、ASPからでも使用できるというものを見つけました。
ただし、こちらVBのランタイムが必要のようです。
KBA(KaBaya's Archive).DLL for windows32
KBA.DLLの簡単な使い方
※「ASPからも変数で呼び出せるように変更」「ASPによるプログラム例」とあります。
その他、手間暇が許せば、自作という道もあるかと思います。
回答ありがとうございました。
おかげで解決できましたのでポイントは支払います。