How To Add An Expires Or A Cache-Control Header Programmatic
Aug 2, 2010
i host my web site into a shared hosting and i need to set expiration header using iis but i didn't find my hosting allow this feature so , is there any way to set it into my web configuration or into my code ??
I am having issue with cache-control. I have one IIS website with multiple host headers. When you browse site number 1 then cache will be set for this site, when you open browser again and go to 2nd site you will see content from first site. How can I determine cache content based on the site user visits? Everything working fine when you have 1 site and host header related to SAME site.
//Set Cacheability if (!Context.User.Identity.IsAuthenticated && _activeNode.CacheDuration > 0) { var eTag = GetETag(_activeNode); HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public);
I'm running a website on a SQL 2008 database. At the moment most of my data is in cache but what I want to do is be able to update the data on a regular basis, say every 3 hours, maybe more frequently. Obviously I can set the cache to expire and pick up new data, but how can I replace part of the database (because some tables are populated by the user) in the background, so that when the cache expires the new data is picked up?
I notice when I upload data through VS, it wont let me upload if the DB is in use - so how do I get round issues like this?
In a recent post, I expressed a need to access the properties for the body using declarative syntax, see
Contentplaceholder for replacing attributes?
But, the syntax confuses the editor which is not acceptable.
My hypothesis for a workable solution is to make the change in code. To derive a class from System.Web.UI.Page with extended functionality. However, I want for the designer to be able to still use declarative syntax to set the body tag.
I do not want to have to change any code in my aspx web pages except that they derive from base I want to be able to set these properties using declarative syntax, merely by adding a tag in the derived page I'm not immediately sure how to go about doing this because it doesn't exactly fit the OOP paradigm and I'm not sure where the changes need to be made.
I can use a findcontrol in the base to see if the placeholder has been added. But, not sure exactly at what point in the page processing lifecycle that I can use this findcontrol. I need to set the body before it renders but also be able to grab something from the declarative code.
I have a site that dynamically loads website contents based on domain host name, served from IIS7. All of the domains share a cached collection of settings. The settings are being flushed from the cache on almost every page request, it seems. This is verified by logging the times at which the Cache value is null and reloaded from SQL. This codes works as expected on other servers and sites. Is it possible that ASP.NET Cache is being stored separately for each domain host name?
Scenario: I have a Gridview where I want to handle the Sorting in a custom control that I've added to the header. I've added this control to my GridView's Header via OnRowCreate event handling. I want the Sort Expressions to persist session to session (via Webparts Personalization)
Here is what I have for adding the custom header control to the GridView Header
[Code]....
This works out well for adding the control, but I can't get anything to persist because these controls are creating initially via postback (per the event) and re-created on all subsequent postbacks. I can't add an If(!IsPostback) because the controls are initially created on the gridview's postback (well at least thats how it's acting when I put it in there) If I were to add this control via the ASP page, not via the Codebehind, I would be able to persist the control. If I try to treat it as though everything is setup correctly, and assign my custom control's controls to [Personalizable], I get a runtime error telling me that I can only have webpartzones in or before Page_init (I'm guessing this is due to when/where the gridview hits the OnRowCreate event). If there is some fundimental logic I'm missing, or best practices that I'm moving away from,
I am having a asp.net page where I am using Ajax Tab control. When i am running the page, the text of all tab is not able to view. I want to change the height of Header text.
I have a server control that I developed which generates navigation based on a third party CMS API. Currently I am caching this control using the PartialCaching attribute. The CMS uses cache key dependencies to invalidate the cache when a user makes an edit, however in the case of my server control it does not get invalidated and the updated navigation will not show up until the cache expiration set by the PartialCaching attribute.Here is my two part question:
What is the proper way to programmatically cache a server control, without using the PartialCaching attribute, and adding a cache key dependency?
Is it possible to continue to use the PartialCaching attribute and add a cache key dependency?
How to display dynamic header for datalist control(Dates are dynamic).Also i want header in each row.I want something like this.Words in bold are headers.Header also in each
row.8/1/2010,8/8/2010,8/15/2010,8/22/2010 are dynamic dates whic change every month based on user selecting date from datecontrol.
I'm using the OutputCache for my pages, and I have a dynamic user control (login/register) . When the user try to sign in, the the control do not change the aspect because I´m using OutputCache. How can I exclude the "login/register" control from the cache?
The problem is that this inherited code is specific to the domain, and I want to eventually get the roles from the web.config file, so I can work on a VM not in the domain. have seen an example like this:
PrincipalPermission permCheck = new PrincipalPermission( null, @"DomainAdmin"); permCheck.Demand();
Since this throws an exception if user is not in role, how do I change this example to allow either of the two roles? I could use multiple IPrincipal.IsInRole() and then throw my own exception, but seems like there is probably a way to use the .Demand method with multiple roles. Update 12/21: Sample Code based on Union link from Ladislav's answer below:
PrincipalPermission ppAdmin = new PrincipalPermission(null, @"DomainAdmin"); PrincipalPermission ppAnother = new PrincipalPermission(null, @"DomainAnotherRole"); (ppAdmin.Union(ppAnother)).Demand();
I have a Web Forms app that uses forms authentication. I have a Crystal Reports Server 2008 V1 server with InfoView .NET installed and working. I have some Enterprise accounts setup. EDIT: I should mention that my Web Forms app is on a different server from Crystal Reports Server.
I need to know how to log on to InfoView .NET programmatically on my custom ASP .NET page (C#) and then transfer the user to InfoView without them having to type in the logon information.
Something like this would be nice (C#):
string username = "blah"; string password = "asdf"; // create logon token for crystal reports server // .. // this is the code I need Response.Redirect(url);
I did find this question, which gets me partway there, but it doesn't tell me how to pass the token to InfoView .NET. Some older docs also mention needing a cookie. I've also found other sites that show how to pass it to Java InfoView, but I need the .NET version.
I have advice that this might work for programmatically filling a set of literals from a set of object properties:-
[code]....
However, the line: ctl.Text = pageData.help(i).trim() fails because it's not understood that pageData.help(i) should translate to pageData.help1, pageData.help2, etc.
I am databinding a SqlDatasource to a GridView in 2 different ways.
1) Declaring the SqlDatasource in the .aspx page and setting the DatasourceID property on the GridView to its id
2) Creating the SqlDatasource in the code behind and binding to the datasource property
When I use the declarative method (1), sorting works fine without any extra work on my part, but If I create the SqlDatasource in the code behind and try to sort, I get an exception saying 'The GridView 'myGridView' fired event Sorting which wasn't handled'.
I assume that there is some sort of extra plumbing that occurs when using the first method. Does anyone know what the datasourceid method does that the programmatic one doesn't? I would like to duplicate the logic in the code behind if possible.
I'm trying to databind a formview to the following two functions. IODS doesnt like the "of configtype as new"
Public Shared Function GetConfig(Of configtype As New)() As configtype End Function Public Shared Function SetConfig(ByVal configItem As Object) As Boolean End Function
I have a wizard control and I have defined a custom header template for it and I have put a label control inside that header template and I need to access it programaticly at runtime.
How do I get reference to it in the 'ActiveStepChanged' event of the wiard?
Sorry, not sure if this is the right place for this. I have a requirement to convert Word, Excel and HTML docs to PDF format programmatically, but most information online seems to be talking about client side. What is the best approach for this. I think there would be about 100 conversions a day in production. It's not high volume.
Im wondering how to get a label control that is in a header template in a datalist on an aspx page. I need the control text to change when the user checks a checkbox outside of the list on the page somewhere. I tried Itemdatabound, but I dont want to have to rebind the list everytime the user checks the box (lots of slow reaction time)
We have a wfc layer that wraps the business classes and database access and use a client that lives on the database layer. Amongst our group we are attempting to form standards. Some want to have the client call the web method and pass the page they are requesting and the page size. Pass that to the database and then page in SQL Server use RowNum.Some want to cache the full list of objects in http cache on the service tier and page in memory. They concern here is memory use on the server.
Which would be best for a medium number of users with potentially large number of records to manage (say 30K) Is it better to cache them all in memory and work from there or page at the database as the application scales?
Since I don't want my sessions to be removed unless the session has been abandoned either via code or Session Timeout...For eviction, I would think "None" and for expireable, I would think False.I have tested and calling Session.Abandon does remove the object from the cache. I have also tested to see if by extending my session, the session object in cache is also extended. This does seem to work the "correct" way.