I have a .NET web application on a server (the "proxy server") that relays data from a desktop application (the "streamer") to a client (the "client").

All communication involved uses web calls - that is, the .NET components (the streamer talking to the proxy server) uses WebClients, and the client uses javascript xmlHttp GET requests to retrieve data from the proxy server. It is here wherein my question lies.

A very simple version of the javascript loop is as follows:

var interval = setInterval(function () { getnum(); }, 250);

function getnum() {
    var xmlHttp = null;
    xmlHttp = new XMLHttpRequest();
    xmlHttp.open("GET", "getImage.aspx?param=val", false);
    xmlHttp.send(null);
    var str = xmlHttp.responseText;
    xmlHttp = null;

    // various processing
}

if it matters, the responseText is a base64-encoded string, plus some extra ASCII data to help with the processing.

The streamer application uploads data every 250ms as well. The size of the data being transferred does not exceed 120K per transfer.

The Problem: For the most part, this works. Every now and then, though the server suddenly stops responding to these GET requests. I get a network error, Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'my.site.come/etc...' When this happens, not only does the javascript fail to connect to the server, but other web browsers on other computers can't access the website at all (the root my.site.com). However! Looking at IIS access logs, it appears that the streamer applicaion is still successfully pushing data towards the server. There is no cross site stuff going on, and 90% of the time, this works just fine. I can't figure out what is causing the error to occur. I can't trigger the failure. The only way I can observer it happening is to sit here and watch the javascript calls in the developer console of whatever web browser I'm using (the problem exists across all browsers).

What is happening? And, why would it only fail on occasion?

Related posts

Recent Viewed