MVC :: BeginRequest Event Fires For All Static Files?
Oct 29, 2010
I was under the impression that static files (CSS, images, @font-face files, etc) bypassed ASP.NET completely, and were served directly by IIS. However, my BeginRequest event handler is being called for every HTTP request, including those for static files. This concerns me because I'm creating an Entity Framework data context to be used for the lifetime of each request in that event handler. I don't want to create those contexts if they're never going to be used.
I'm using IIS 7 on Windows 7 Ultimate with so special handler mappings defined. Do I have it wrong? Should these events be firing?
we are having some weird issues with URL Routing in ASP.NET 3.5.
We have a search box that does a search and redirects to a routed URL.
When we search for the first time (aka Press a button that forces a postback) everythign works as expected. we get:
1. BeginRequest event.
2. Determines Route
3. Calls Routehandler to match the route item to the actual destination page
4. Routes the url appropriately.
After you do one search successfully and try again it fails to call the BeginRequest event. Because of this the routing data never gets called and so the url is never routed to its correct destination. What is weirder still if we append a "/" (trailing slash) to the url after the initial postback it DOES work properly again.
So our search route looks like this
mydomain.com/Search
entering a term and pressing the SEARCH button would yield a result url like this:
mydomain.com/Search/Results/MySearchTerm
Going back (after 1 successful search) you then need to use this url or else BeginRequest will never fire:
mydomain.com/Search/ < (note the extra "/" at the end)
why the BeginRequest event never fires unless the slash is appended?
I'm developing IP Blacklisting HttpModule in asp .net application and I found one very annoying thing. Each request to the asp net page generates tens of "subrequests" to application resources like images, client side scripts, styles etc.
Now in my application I'm listing to the BeginRequest event and when it is fired I'm loading Dictionary with blacklisted IPs from application cache and check user's IP against it. I've made a simple log of what is actualy happening during each page view, here are the results:
[Code]....
As you see, one request to Login page causes BeginRequest to fire 18 times, there is 18 dictionary loads, 18 lookups etc. That's not the way I want it to be.
Is there any other event that is raised only once per each request? Where do you place the blacklisting mechanism in your applications? I know I can do it through ISAPI filter, but the catch is, this site is on the shared hosting and I'm not sure I can use it on their IIS. Also I'm not sure if ISAPI filter can access some piece of cache with this blacklist (I don't want to load it from DB on each request, that's obvious).
why the gridview RowDataBound event fires during a select command. I only expect it to run when the gridview is being populated with data. Is there some way to stop it from running when the select command is triggered?
How do I create a new event in a base page class that fires after all derived pages have fired their load events but before any controls fire their load events.
The following code fires the event before the derived page's load event. I want it to fire the event after the derived page's load event but before all control load events:
Base Class:
Public Event FirstLoad(ByVal sender As Object, ByVal e As System.EventArgs) Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then RaiseEvent FirstLoad(sender, e) End If End Sub
Derived Class:
Private Sub Page_FirstLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.FirstLoad 'Stuff here happens before controls load but only on first page loads' End Sub
I have an aspx page that is wrapped with an UpdatePanel control, users can post comments and delete them later, when the user clicks the delete for the first time it deletes successfully but if he wants to delete another comment, it works only after two clicks on the button.the delete button is inside a web user control that is added dynamically at run time.
The intent is that when the LinkButton is clicked, it disables itself and returns false to prevent the postback (this control is used as a trigger for an animation).
I can't figure out why, but before my form is even displayed, the CheckChanged event fires. I don't even have a chance to check anything. Has anyone seen anything like this?
I have to create columns dynamically based on a datatable, some field type info and some header texts.
I do that by creating templates.
It created the grid fine and all looks good, however when i click a checkbox and the checkedchanged event fires then something odd happens
The first time i click its fine and i get the expected values in the event
But the second time then the event gets fired with the values from the first time and then again with the values from the checkbox that i actually clicked.. The third time the event gets fired 3 times, first 2 times with the old values and the third with the correct value.
Here is the code:
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Text.RegularExpressions; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;........
Page_load event fires two time in firefox and the same page is working fine in IE. What might be the problem? If it is problem with Autoeventwireup then page_load event must fire two times in IE too. I believe it is not a issue of Autoeventwireup.
In my web form, I have dropdown list with autopost back true in ajax update panel. I have javascript alert in Onchange event. But it fire twice and alert msg show it twice
I have a page which contains linkbuttons and panels. all panels have DetalilView and gridView controls. On click of linkbutton, panel's visibility is set. everything works fine on my local server. But on production server, no events of Button, DetailsView and GridView fires.
I have a dynamically created user control which is accomplished usingLoadControl().
When I debug, the LoadControl call is called once, however the Page_Load inside the user control is called twice. On each occasion, the postback property is false, so it seems somehow the Page_Load event is called outright 2 times and nothing to do with any postback?
How would I get the previous item on DropDownList before OnSelectedIndexChanged fires the event?
I had a DropDownList that has names as its items ("John", "Mark"). By default the SelectedIndex is "John". Upon changing its index and selecting "Mark" the event OnSelectedIndexChanged will be triggered. When I use ddlName.SelectedIndex it will return only the index for "Mark" which I want to get is the index of "John".
I dont know what happened but none of my buttons or linkbuttons causes a postback anymore. I have dragged a few updatepannels on the page but the linkbutton concerned is not enclosed within an update pannel. when I click it there is just no postback happening anymore. I set the debugger at Page_load but...its not reached. I used firebug to analyse the http requests. there is none. its like those are not considered buttons anymore.
I have the following problem. I have a user control with its own events and procedures. I added this control to a page programmatically. It appears as it should but when you click a button on the user control. the control disappears from the page.
Basic concept of AJAX is to cause Partial post back of the Page. If we use AJAX, Page Load occurs, than what is the difference between normal Pages' Page_Load event (without ajax) and Page load event of a Page with ajax.
I have a LinkButton which fires an OnClick event to update some Labels; however, after the first firing of OnClick, it won't fire again when I click another (or the same) LinkButton which runs the same OnClick event. (It's a list of people, each a LinkButton, and clicking on one brings up their details)
If I leave the page a few minutes, it will work again, almost as if whatever was preventing OnClick firing timed-out. Of course, this won't be any use to the users!
This is my ASP.NET code for the LinkButtons (encapsulated in a DataList):
[Code]....
All the connections work, the data is retrieved, etc, so everything except the OnClick firing works. I've done a search of the internet and the forum, and found this seems to have been a long-standing problem since the first ASP.NET, but there is no solution for ASP.NET 3.5. Does anyone know what causes this, or where I might be going wrong?
I haven't been able to find anything on the net about this yet. A project that used to work fine all of a sudden started having trouble with a couple users. The TextBoxWatermarkExtenders for these users are now always firing the TextChanged event of the textboxes they are assigned to for every postback. I don't think this is what they are supposed to do. They didn't use to do this. Has anyone else experienced this? I can add code to ignore these unintentional events, but I would like to know why all of a sudden the change in behavior.