Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

IIS6 SF_NOTIFY_SEND_RAW_DATA FILTER Question

22 views
Skip to first unread message

wan...@gmail.com

unread,
Sep 4, 2005, 5:58:54 AM9/4/05
to
Hi,
I am developing a filter for IIS, it works fine under win2000/iis5.
But some problem with win2003/IIS6.
In my send_raw_data callback like this:

case SF_NOTIFY_SEND_RAW_DATA:
dwRet = _auth->OnSendRawData(pfc, (PHTTP_FILTER_RAW_DATA)
pvData);
break;
case SF_NOTIFY_END_OF_REQUEST:
dwRet = _auth->OnEndOfRequest(pfc);
break;

When client cancel the downloading process of a big file(120M) from the
server,
the OnSendRawData filter behaviour differently.

In IIS5, after cancelled the downloading process, the OnSendRawData is
nolonger called, as I anticipated.

But in IIS6, the filter is continoully called tens of thousands of
times(5xxxx times).It seems IIS don't know the connection is over and
continue sending the the file untill all the file is sent.

Is this a bug?
Please help.

David Wang [Msft]

unread,
Sep 6, 2005, 1:47:48 AM9/6/05
to
Does behavior change on IIS6 if the filter registers for
SF_NOTIFY_END_OF_NET_SESSION ?

--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
<wan...@gmail.com> wrote in message
news:1125827934.6...@g43g2000cwa.googlegroups.com...

Markus

unread,
Sep 7, 2005, 3:28:47 PM9/7/05
to
it looks like you are experiencing exactly the same problems like me. i'll
bet you are using "WriteClient()" to send data to clients, don't you ? in
iis6 the behaviour of "WriteClient()" is completely different to older
versions.

iis6 uses a new kernel mode driver (http.sys) to handle http requests. this
driver does extensive buffering of data send via "WriteClient()" even if the
client is no longer connected. therefore the "WriteClient()" returns always
true, also if the client has died away in between. iss5 "WriteClient()"
returned false in these cases.

by the way. look for a thread here named "WriteClient on IIS6.0 (SP1)"

wade did a reply to explain the situation exactly. unfortunately he didn't
had a idea do go around.

greetings from germany,

markus


<wan...@gmail.com> schrieb im Newsbeitrag
news:1125827934.6...@g43g2000cwa.googlegroups.com...

wan...@gmail.com

unread,
Sep 14, 2005, 11:00:34 PM9/14/05
to
Hi, David,
I have tried both regist SF_NOTIFY_END_OF_NET_SESSION or not.
It behave the same.

wan...@gmail.com

unread,
Sep 14, 2005, 11:03:55 PM9/14/05
to
Thank you, Markus.
I have read this post.
It was just like what I meet.
But I did't call WriteClient(), I just download a file from IIS
website.
So I think IIS call WriteClient().
I still don't know how to get the disconnet event.

Yongming Wang

0 new messages