Post by a***@gmail.comPost by David WangUnless you are seeing lots of them, there may be nothing you can do
about it. You probably cannot prevent the user from hitting F5 to
refresh.
Yes, you right, this sounds reasonable. But actually I have the
following situation.
My APP is ASP application on IIS 6.0 in cluster of 8 servers
(WinServer 2003). Clients can download different documents: PDF, HTML,
txt, etc... Requests from one client could be passed either one by
one, e.g. by clicking on link on website, or in batch mode (but not
simultaneously, I guess) called from some sort of scripts.
So I've been testing my app with my own script located outside of
- 20 requests for different PDF documents were passed in cycle one by
3 of them had sc-status=200, sc-win32-status=64, sc-bytes=0;
7 - sc-status=200, sc-win32-status=64, sc-bytes>0;
other were good.
ALL PDFs were successfully downloaded and correct!
- 5 requests for some xml data (not xml files) were passed in cycle
first 4 were good;
last one has sc-status=200, sc-win32-status=64, sc-bytes=0. Actually
this is reproducible for any number of requests, even for 1!
All those requests were passed through HTTP 1.1 with
- ALL xml data requests were passed successfully;
- there were no sc-status=200, sc-win32-status=64, sc-bytes>0 entries
in IIS logs;
- sometimes there were sc-status=200, sc-win32-status=64, sc-bytes=0
entries - in this case "The server returned an invalid or unrecognized
response" error was returned by MSXML2.ServerXMLHTTP.
ONLY PDFs without "The server returned an invalid or unrecognized
response" error were successfully downloaded.
So I didn't interrupt any of requests while their executing but sc-
win32-status=64 anyway was in my logs. HTTP - HTTPS different behavior
looks interesting as well.
David, could you say something about such system behavior, in which
way should I look to find out the solution of this issue? Any
suggestions are really appreciated.
Thanks a lot,
Andrei
Client disconnect is only one possibility and there are others. Also,
just because Win32 error says 64 does not mean the client did not
receive the data. Networking is unpredictable like that - it is
possible for data to be transmitted to the client but the return ACK
for closing the connection gets lost, so the server thinks the client
never got the data when it actually did. Remember, the network is
inherently UNRELIABLE.
So, I am not terribly fascinated by the actual numbers in your log
file; I am more concerned that your server-side applications are not
able to consistently send back proper responses to be interpreted by
the client.
Do you only see the errors with your scripts or do you see them with
real people using browsers (i.e. is the issue something to do with
your network configuration or server-side application, which would be
"consistently but randomly" affecting scripts and browsers, or is it
specific to how your scripts work).
Also, "downloading" is not all the same. PDF retrieval by a browser
can be different, and resources can be retrieved/sent in different
ways as well, even though it is all "downloading".
Finally, if your resources are not sent by IIS (i.e. your XML data are
not files sent by IIS but rather data sent by custom server-side
application code), that code can be suspect. For example, does the
code send a proper HTTP response, where content-length/type matches up
byte-for-byte? If the code is even off by one, then it could cause the
server or client to misunderstand each other and cause issues like you
observe.
I recommend that you review both how your client script and server-
side application works to send data because it may be causing the
different results on its own.
And if you observe the issue with both scripts and real browser
clients, then the culprit may be some commonly shared networking
device.
//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//