Web Forms :: Prevent Browser From Caching Image - Trsponse.Cache.NoStore Didn't Work
Feb 22, 2011[Code]....
How to prevent browser from caching image, Trsponse.Cache.NoStore didn't work
[Code]....
How to prevent browser from caching image, Trsponse.Cache.NoStore didn't work
since asp.net contains multiple threads that are executing at the same time.so if 2 threads access an object (simple or complex) that i got from the the asp.net httpcontext Cache.can't this lead to state problems on that object if these 2 theads tried to modify/read it at the same time?so what kind of precautions should i implement?for example i am thinking maybe locking the object while working with it? (wont this cause performance problems?)or maybe when i retrieve some object from the cache i should create a copy from it?
or maybe i dont need to worry about this issue at all?
i am using Jcrop to give users the option to crop there images, i have hit a small caching problem.
if you open an image which is already on the server and crop it. my jcrop works and crops the image fine but when i reload the image the old version is displayed. i have this inside an update panel.
so is there a way of removing the browsers cache before i reload the image?
Is it correct to implement my caching object like this in my controller :
[code]....
And I Use it like this :
[code]....
I've got a web application that runs of a state server. It looks like soon it may need to distributed and there will be two web servers behind a load balancer.
This works great for session state but my next challenge is Cache
My application leverages heavily of cache. I understand ASP.Net 4.0 will be offering more here but nothing much has been said about the how too.
There are two challenges that I face
1). Each webserver will have its own copy of cache whereas it would be more efficient to put this to a third server the same as session state is put to state server.
2). The real challenge is keeping cache in sync if a simple dataset derived from the database is changed my code dumps that cache item and reloads the cache. That's all well on one webserver but webserver number two wont know to drop that particular cache item and reload it. This could cause some unexpected problems in the application.
For scenario number 2 I could attempt to do some smart coding so server number two knows to dump the cache and reload it.
My guess is someone else has already been here before and there's probably a better implementation approach rather than writing extra code.
Does anyone know how I could achieve the goal of keeping Cache in sync between multiple webservers or even better farm Cache management to another server?
Precondition: There's a web application that leverages ASP.NET security model. There's also an Active Directory (AD) integration component. It provides AD users and roles as if those are application's own users and roles. The relations like "is in role" between AD user and AD role are stored in AD domain, of course, but are cached by the web application.
Problem: Let's say AD user1 is a member of AD role1. When web application starts, it caches this relation. Now if the AD administrator removes user1 from role1 using AD console, the application doesn't know about this change - the cache entry is kept. This becomes a security hole because the role1 might have permissions the user1 should no longer have.
There are two сcontrary opinions how to solve this:
"Listen" to AD changes and trigger cache entry removal once the operation is detected on AD server - because we are responsible for correct AD component functioning Leave the cache untouched - because we didn't put the entry there and should not remove it either
This the code.
Cache.Insert(txtUserName.Text.Trim(), 1, null,
DateTime.Now.AddMinutes(1),
TimeSpan.Zero);
But Cache didn't expire after a minute.
In our .aspx pages we have user controls each control has a Sql query to fetch data. The caching mechanism to be followed says that fragment cache all the user controls and invalidate the cache based on the respective queries of the user control.How to proceed to add a query dependency to fragment cached user control?
View 1 RepliesI'm not sure where went wrong, from the beginning, my gridview didn't reflect what I choose in AutoFormat style. I tried to set one of the styles and Apply and OK, the grid rows seems to reflect but header row color remains the same. My gridview has pre-defined columns and I bind it to datatable at code behind. And it is placed inside div tag which is inside a table tag. And this page is a child page inside a master page.
View 3 RepliesI have two divs, and I just want the second one to be under [in z-index] the first one, I read about it here and I figured out that I have to use the following JQuery script:
<script type="text/javascript">
$('#secondDiv').insertBefore('#firstDiv');
</script>
I tried it, but it didn't work with me,
<DetailedTemplate>
<div id="firstDiv" style="background-color:Black">
<asp:ImageButton ID="SelectButton" Visible='<%# org.SelectedValue == null || Container.DataElement("ID").ToString() != org.SelectedValue.ToString() %>' runat="server" CommandName="Select" CommandArgument='<%# Container.DataElement("ID") %>'
OnPreRender="SelectButton_PreRender" style="border-style:none; Height:58px; width:113px; cursor:hand" ImageUrl="~/Contents/Images/item-background.png"/>
[Code]....
I have been using gridveiw to show uploaded files after that I have already put the new column to download these files. If I will put EnableEventValidation="true" and EnablePartialRendering="true"(ToolkitScriptManager), it is didn't work and error messages apperar like this:
Server Error in '/POV2' Application. Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page nableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. Source Error:
[Code]....
Stack Trace:
[Code]....
[ArgumentException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.] System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +173 System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +72 System.Web.UI.WebControls.HiddenField.LoadPostData(String postDataKey, NameValueCollection postCollection) +46 System.Web.UI.WebControls.HiddenField.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +13 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +346 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1743
If I will put "false", it is okay, I can download but updatepanel is didn't work. So my page refreshed when I click any events.
Among the many aspects of asp.net that I haven't focused my development on yet is caching. I have a perfect application for it now, I think, with a GridView that sits inside a repeater, and is bound in the Repeater ItemDataBound event. The contents of the GridView will remain static for each Repeater data item for each Client. The nature of the data in the GridView is that it can change from day to day per Client, but wouldn't need to be refreshed more frequently than that. The Page istelf only deals with one at a time Client based on a QueryStringParameter. My questions are a) how do I cache the DataTable so that a call to the DataBase isn't made each time Repeater item is bound and b) can I create/cache multiple DataTables (one for each Client) and let them live for day, checking for existence before calling the SQL stored procedure to regenerate the data?
My DataTable method: [Code]....
i have a website which has a listview control and databind in a SQLdataSource Control, and in its ItemTemplate has a HTML Image Control.
but when i run the website, it displays other fields from the Database but the image is not displaying,
to test if there is a problem in the link of the image or the image it self,
i add a Repeater control just under the ListView Control and Copy the whole ItemTemplate from ListView to Repeater and when i run the website, the image in the Repeater is displayed but the ListView does not.
this is my asp.net code.
[Code]....
i write a page method and some sort of javascript to work with that method, everything fine in any browser but firefox!
[Code]....
<input id="offcheckcid" type="button" value="بررسی کلوب آی دی" onclick="CheckCloobID('offline');" style="color: Black;"/>
function CheckCloobID(sender) {
var id;
var email;
var button;
id = $get("ctl00_ctl00_cph1_cph1_offcid");
email = $get("ctl00_ctl00_cph1_cph1_offcpe");
button = $get("offcheckcid");
button.value = "کمی تامل نمائید...";
button.disabled = true;
id.disabled = true;
email.disabled = true;
PageMethods.CheckCloobID(id.value, email.value, 'offline', OnSuccess, OnTimeout, OnFailure);
}
function OnSuccess(result) {
var results = result.split("#", 2);
if (results[0] == "Accepted") {
var price = $get("offcut");
price.innerText = "30,000- ریال";
var total = $get("offtotal");
total.innerText = "570,000 ریال";
var button = $get("offcheckcid");
button.value = "تائید شد";
}
else {
alert("...کلوب آی دی و ایمیل محرمانه وارد شده وجود ندارد یا قبلا تخفیف گرفته است");
ActivateButtons();
}
}
the problem: onsuccess event did not work in firefox, no error message displayed in firebug...
[OutputCache (Duration=20, VaryByParam="None" )]
public ActionResult display()
{}
This code cache whole page.But, my site has user infomation on top like this ASP.net. The user info "Signed as userid | Edit Profile | ..." section should be changed when user sign in/out. But rest of the page is always same and it's good to Cache.
If the above code is used, the user info on top also cached and give wrong info to user.
I have a List of objects in an asp.net page. when the page loads in the browser for the first time, I fetch data from the database, create objects with those data and populate the list. All these are done inside the page load event handler. Now when the page is posted back to the page, the previous list is gone, since the variables were all freed.
How can I cache that List, so that when this page is posted back, all my objects are available?
Last night I wrote up my first IHttpModule to do some request processing. I'm using a regular expression to inspect the raw url. The IHttpModule will be called on every request, so it seems reasonable to do some sort of caching of the regular expression object to prevent creation of it on every request.
Now my question... what is better: use the HttpContext.Current.Cache to store the instantiated object or to use a private static Regex in my module?I'm looking forward to the reasons why. Just to clarify: the regex will never change and thus always be the same thing.
I am building a web application using asp.net (c#) and lingtosql. When I perform update operations on my db I update my classes. I use gridview to bind to update information. When I relay solely on the database the page's take very long to load. When I relay solely on the cache, I have old data. What workarounds do I have for have asynchronous cache updating, yet not overload the database with endless requests (I'd like to update the cache only if there has been a change in the database itself, and perform the update operation asynchronously).
View 1 Replieswhat the default serialization used by the ASP.net HttpRuntime.Cache is? Is it Binary, XML, something else?
I am populating a generic List with multiple objects of the same custom type. The custom type is a POCO, there is nothing special about it. All of its properties are public with { get; set; }, it is public, it has no inheritance, it has no interfaces. In fact it is much less complicated than many other objects which we are caching which work without issue. I have tried adding the [Serializable] attribute to the custom class and it has no effect.
I add the list to the cache with a unique key. The list has been verified as populated before it is inserted into the cache, the objects in the list have been verified as populated as well. But when the list is pulled back out of the cache it is an empty list (NOT NULL), it simply has no items in it. This means that the list is being added to the cache and is retrievable but for some reason the cache is having issues serializing the objects in the list.
I just find this freaky weird since I have another list of custom objects which are much more complicated (consisting of Inheritance, Interfaces, and also containing Properties which are generic lists of other complex objects) and the caching of those lists work without issue.
Both the working and non-working list are being managed in C# classes outside of the ASP.net user controls which consume the cached data. Both of these cache handling classes call the exact same Cache Manager class singleton instance which wraps the HttpRuntime.Cache to provide typed methods for pull and pushing objects into the cache.
Here is the class
[code]....
We display an ASP.NET calendar control and update the color and if the day is enabled with the DayRender event. This process is a bit slow so I'm trying to map out a strategy to cache the results of the all the DayRenders. Basically take a snapshot of the calendar and cache it for X minutes. Where would I hook into the page/control workflow to accomplish this goal?
View 1 RepliesI am devloping ASPX pages and I want to prevent caching of pages. So i have used the following code:
<% @OutputCache Location = "None" Duration="1" VaryByParam="none" %>
But this code is working only for the desktop browsers. This is not working in mobile browsers.
i want ot clear the browser caching xml files as i am not abel to load the newly edited xml file
View 4 RepliesI would like to use output caching with WCF Data Services and although there's nothing specifically built in to support caching, there is an OnStartProcessingRequest method that allows me to hook in and set the cacheability of the request using normal ASP.NET mechanisms.
But I am worried about the worker process getting recycled due to excessive memory consumption if large responses are cached. Is there a way to specify an upper limit for the ASP.NET output cache so that if this limit is exceeded, items in the cache will be discarded?
I've seen the caching configuration settings but I get the impression from the documentation that this is for explicit caching via the Cache object since there is a separate outputCacheSettings which has no memory-related attributes.
Here's a code snippet from Scott Hanselman's post that shows how I'm setting the cacheability of the request.
[code]....
I am using System.Web.Caching.Cache in an assembly used by my website.
I have set some key expiration (absolute expiration) to be 10 seconds (just for debugging).
I have also set a callback upon key removal.
The problem is that I see that the cache is getting refreshed after something like 20 seconds and not 10.
I am using HttpRuntime.Cache for this.
I would like to show a code sample, which can shed more light:
[code]....
What could be the problem ?
How do I setup caching for a Page in ASP.NET and give it a cache key dependency? I am familiar how to do this with a UserControl, I set a Partial Caching attribute and then set
this.CachePolicy = new CacheDependency(..)
How would I do this for a Page? It does not have a CachePolicy object,