1

我有一个asp.net 网站。我每秒通过计时器尽可能多次更新图像,图像大小为 720x576。我通过在 img 控件完成加载前一个图像后启动下一个 ashx 页面调用以获取我的图像来控制何时可以更新图像(我在“onload”事件中执行此操作)。

我的 w3wp.exe 目前为 140,000k,下降到 130,000。经常在这两个值之间上下波动。

当我正在使用 1 个用户进行测试并且我在一个便宜的 VPS 共享托管环境中时,我的问题是当我上线时 w3wp.exe 是否会变得无法控制,或者通过升级我的服务器包(主要是增加 RAM)有助于保持这一切都在控制 na 多用户环境中?

这是我的 Javascript:

        var timer3;
        var intervalLive = 50;

        function play2() {
            if (timer3) window.clearTimeout(timer3);
            swapImages3();
        }

        function setImageSrc3(src) {
            _imgLive.src = src;
            timer3 = window.setTimeout(swapImages3, intervalLive);
        }

        function swapImages3() {
            var imgCached = new Image();
            imgCached.onload = function () {
                setImageSrc3(imgCached.src);
            };
            imgCached.onerror = function () {
                setImageSrc3("http://a URL/images/ERROR.jpg");
            };
            imgCached.onload = function () {
                setImageSrc3(imgCached.src);
            };
            imgCached.src = null;
            imgCached.src = 'http://A URL/Cloud/LiveXP.ashx?id=' + new Date().getTime() + '&Alias=' + alias;
        }

这是在我的 ashx 页面中:

public class Live : IHttpHandler {
    DAL dal = new DAL();
    static byte[] StandardError = Shared.ERROR;
    public void ProcessRequest(HttpContext context)
    {
        byte[] data = null;
        context.Response.ContentType = "image/jpg";
        try
        {
            if (context.Request.QueryString["Alias"] != null)
            {
                data = Shared.GetFrame(context.Request.QueryString["Alias"].ToString());
                context.Response.BinaryWrite(data);
            }
        }
        catch (Exception ex)
        {
            data = StandardError;
            dal.AddError(ex.ToString());
        }
        finally
        {
            context.Response.BinaryWrite(data);
        }
    }
    public bool IsReusable {
        get {
            return true;
        }
    }   
}

谢谢

4

0 回答 0