public void ProcessRequest(HttpContext context) { string name = context.Request.QueryString["name"]; string location = context.Request.QueryString["location"]; string version = context.Request.QueryString["version"]; if (name == null) { name = _UrlInfo.Action; } try { if (!_StaticResourceRegistryEx.Exists(name, location, version)) { context.Response.StatusCode = 0x194; } else { string mimeType; Stream resourceStream = null; try { resourceStream = _StaticResourceRegistryEx.GetResourceStream(name, location, version, out mimeType); if (resourceStream != null) { byte[] bytes = new byte[resourceStream.Length]; resourceStream.Read(bytes, 0, Convert.ToInt32(resourceStream.Length)); context.Response.Clear(); context.Response.AppendHeader("content-disposition", "filename=" + name); context.Response.AppendHeader("content-Length", bytes.Length.ToString()); context.Response.ContentType = mimeType; context.Response.OutputStream.Write(bytes, 0, bytes.Length); } else { string resourceContent = _StaticResourceRegistryEx.GetResource(name, location, version, out mimeType); context.Response.ContentType = mimeType; context.Response.Write(resourceContent); } } finally { if (resourceStream != null) { resourceStream.Close(); } } } } catch (Exception) { context.Response.StatusCode = 500; throw; } }