In my web application I use an ashx file to write a file to the browser. I've noticed that there's no compression over the .ashx file, but only over my .aspx files.
Is it possible to compress .ashx? And if it is possible, how?
Currently I use global.asax to handle the compression:
As you can see only files which inherit from 'Page' are compressed, and my ashx file is not of type Page. So I added a condition and now it works just fine:
if (!(app.Context.CurrentHandler is Page || app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler" || app.Context.CurrentHandler is ViewMht // This is the type I had to add ) || app.Request["HTTP_X_MICROSOFTAJAX"] != null) return;
I have a bunch of internet devices which communicate with my MVC app on IIS 7.5. I'm currently using the built-in dynamic transparent compression (gzip/deflate).
I'd like to be able to support a different compression algorithm, which does a lot better than gzip (7zip) for the content I'm sending/receiving.
In other words, on the client I will add the header: accepts: gzip, deflate, 7zip (or similar), and the server will recognize this, and apply the best choice when sending the content.
What's the best way to go about hooking this all together? (I know how to implement the actual 7zip encode/decode aspect)
I'm tring to implement what Steve Souders discusses [URL] about forcing gzip compression
I've got a module that's running this:
[code]....
CompressionUtils.GzipSupported just checks for the 'accepts-encoding' header while CompressionUtils.GzipSupportedExplicitly and CompressionUtils.GzipNotSupportedExplicitly check for the cookie saying whether the browser really can read gzip
But when I load a page in Firefox I get this error:
Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.
and in Fiddler it shows that the content-encoding header has been added but the content hasn't been compressed
I have a compression module built based on several examples on the web. Initially, I hooked into the BeginRequest event of the application context to conditionally compress certain file types. This seems to have worked fine for JS and HTML, but CSS was giving me trouble. Here are the specific steps I could take to reproduce the problem consistently.
I'm getting around 50% compression using System.IO.Compression and I think it could/should be getting around 75% by setting the compression level higher. Is there a way to improve the compression level or should I be looking for a different solution?
I have one asp.net page which seems to return a very big content (5,648,733 bytes and that is mostly consumed by VIEWSTATE) ending with a 504 Gateway timeout error. I am tracking the http request/response by using Fiddler.
And basically, when I post-back the same page -by clicking a button- the post-back fails with thoose errors shown in IE and in FF:
Internet Explorer cannot display the webpage --> in IE
The connection to the server was reset while the page was loading. --> in FF
Question: Can this be because of the big size injected in VIEWSTATE; and if yes, what is the main reason so that it loads the page but cannot post the page back after?
I want to write own control which can contain other. And I want to define content of the control in the .aspx file where the control is defined. I have written such control. But now I have issue with ViewState of inner controls of my control. The following samle illustrates the issue: I defined two asp:DropDownList ID="ddl1" and ID="ddl2" One of them is inside of my control and other is outside. When posback is occurred asp:DropDownList ID="ddl1 loses state and becomes empty. How to say ASP.net to store state of inner controls defined by this way?
MyControl.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyControl.ascx.cs" Inherits="DynamicControls.Controls.MyControl" %>
I have to let the user downloads a big text file.. By now I'm compressing the file with ".gz" (GZipStream)... And then the user can unzip in his machine.. But some users can't decompress the .gz extension.. And I wonder if there is any way to compress using zip..
Now here is the weird thing. First i am running it locally on the built in vs2008 web server.I load my control in fine, do a postback from a linkbutton, locally on my machine it all works fine, no issue.However when it goes onto my host, it falls over with the message:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request.Now i also load controls dynamically and use postbacks and things in the admin area of the site...and that works fine, however my front end just keeps failing? See the code behing below:
We are trying to compress JS and CSS files in our application which is Running IIS 7.5. Both JS and CSS files are getting compressed But application is not able to load these compressed .JS and .CSS files it is still referring to old un compressed files.
Just for your info Compress JS and CSS Files are at C:inetpub empIIS Temporary Compressed FilesDefaultAppPool$^_gzip_C^.
Here are the setting which i have in AppHost.config file
I want that suppose user upload 2 MB image then from that image i want to generate 1 thumbnail image.To reduce its size , so i can get speed in loading. as my listing page contains many images.so i am getting to much loading time. SO can you tell me how can i compress image or get Thumbnail image?
Any way to compress bitmaps, jpeg, png images for space. The reason being i have a webform that takes in n number of images from a user and stores it to a mapped drive. what i want to do is compress those images to optimize on space on the drive.
My pages are automatically being compressed by IIS7 with GZIP. but, for one particular page, I need to stream it to the user, using Response.Flush() when needed. But when the output is being compressed, the IIS server seems to collect all my output until the page is done before compressing and sending it to the client. That nullifies my attempt to Flush the content out to the user.
Is there a way that I can have this one page opt out of the compression?
One possible option
I've determined that if I manually set the content type to one that does not match the IIS configuration at c:windowssystem32inetsrvconfigapplicationhost.config, then IIS will not compress it. Eg. Response.ContentType = "x-text/html". This works okay with IE8, as it falls back to display the HTML. But Firefox will ask the user what to do with the unknown file type.
This could work, if there was another Mime Type I could use that browsers would accept as HTML, that is not matched in the applicationhost.config. For reference, these are the mime types that will be compressed:
[code]...
Others options?
Are there other options to opt out of compression?
In the past, with pages with large viewstate I have overridden the PageStatePersister class so when the state is saved I compress it. On Load I decompress it. I have haven't really thought about it, but could IIS handle something like this better? The reason I did this was to keep my pages slimmer because I have a lot of custom controls on the page and the viewstate was huge. This is where I got my original code from:[URL]
I have been getting this error a lot lately with some of my users, and I had a couple of concerns with view state and I have read so many articles but I am still lost..
1. I use masterpage on all the pages and I need viewstate for some of the pages but..
There is a page where a user will fill out the information and then submit this data to a cgi server, and it is where I get most of the Client Disconnected errors, what would happen if I disable viewstate when they click on that button?
Now when a user browses from one page to another, does the view state from the previous page get deleted? If not how would I delete it?
Does the master page have its own viewstate? Would I be able to make sure none of items on my master page are using the viewstate?
I have a shopping cart page (Cart.aspx) that has a button that will (sometimes) post to a third party payment gateway, if payment is necessary. The payment gateway will process the payment and then do a silent post to my website (Order.aspx) so I can update the order status.
Order.aspx always throws an invalid viewstate error, even though viewstate is disabled on the page.
What's happening is that Cart.aspx (which has viewstate enabled) posts to the payment gateway, and the gateway will post it back as part of the silent post. Even though Order.aspx has viewstate disabled and validation disabled, it still tries to validate the __viewstate field it's being given.
I know setting EnableViewState=false will disable the rendering of the __viewstate field, but if another page provides the field, shouldn't it still skip validation? I tried calling ViewState.Clear() on the Page_Init event of Order.aspx, but ViewState is apparently empty. how to get around this? I don't want to disable ViewState on Cart.aspx (in some cases it may be necessary), but I can't figure out how to clear it on Order.aspx.