しばらく開発していた IIS6 用の ISAPI フィルタがありますが、気になる点があることに気付きました。フィルターをインストールしてファイルをダウンロードすると、ファイルのダウンロードが非常に遅くなります。リモートマシンからは、フィルターがインストールされていない場合は毎秒約120kb、フィルターがインストールされている場合は毎秒約45kbです。
SF_NOTIFY_SEND_RAW_DATA
これはコールバックに関連しているようです。このコールバックに登録するたびに、ダウンロードが遅くなります。登録しないと、すべて問題ありません。
次のように、HttpFilterProc
関数をすぐに返すようにしても、
DWORD WINAPI HttpFilterProc( PHTTP_FILTER_CONTEXT pfc,
DWORD notificationType,
LPVOID pvNotification )
{
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
私もSF_STATUS_REQ_HANDLED_NOTIFICATION
同じ結果で戻ってみました。
コールバック関数の実行が遅くなる原因となっているビルド設定が DLL にある可能性はありますか?それとも、ISAPI を使用する場合に発生する問題なのでしょうか?