以下の点についてご教示いただければ幸いです。
Windows2003 Server + IIS6.0 + IE6 + VC6 + SDK で ISAPI フィルタを利用した
プログラム(DLL)の改修作業をしています。改修前は WindowsXP + IIS5.1 で
動作していました。
このプログラムは一部処理に時間がかかる箇所があり、この部分を実行中に
ブラウザを終了すると、World Wide Web Publishing サービスを停止させるさいに
応答がなくなるらしく、サービスの停止が出来ないまま「停止処理中」の状態が続く
ようになります。
ログを仕込んで改修前後の動作を比較したところ、以下のことがわかりました。
・改修前後とも、ブラウザ終了後も正常に動作を続け、処理を終了している
・改修後の環境では、上記を確認後にサービスを終了させようとすると
「停止処理中」の状態となり、途中で(処理終了前に)実施しても同様となる
・改修前の環境で同様の動作をさせたところ、サービス終了時に当該プログラムを
強制終了させているらしく以降のログ出力はされなくなるが、サービスは
正常?に停止する
以上から新しい環境で「サービスが停止できない」原因は、サービスの終了要求が
掛かった時点でプログラム側がすぐに停止処理を実行できず、タイムアウト?になって
しまうことでありそうだと推測しました。
ここで質問があります。
1.終了要求発生時には TerminateExtension 関数が呼ばれると理解しているのですが、
他の処理を実行中でもこの関数を呼び出せるようにすることは可能でしょうか。
(現状、改修後のプログラムでは呼ばれていないようです)
2.IIS6.0 で World Wide Web Publishing サービス停止時にプログラムが
(私の環境では)強制終了されませんが、プログラム側でそのように動作させるように
する方法はあるでしょうか。また、強制終了されるようする設定などが
別途あるのでしょうか。
以上、よろしくお願いします。
追伸.
こちらの掲示板では VisualC Forum でお見かけした方々もいらっしゃるようなので教え
てください。
VisualC Forum は閉鎖になったのでしょうか。たびたびご厄介になっていたので悲し
い...
しろーとさん、返信をありがとうございます。
リンク先を拝見しました。
閉鎖ではない?ようですが、やはり今も接続できず...
気長に接続を試してみます。w