Treat Race Condition Of Session In Web Application?
Apr 3, 2010
I was in a ASP.NET application has heavy traffic of AJAX requests.Once a user login our web application, a session is created to store information of this user's state. Currently, our solution to keep session data consistent is quite simple and brutal: each request needs to acquire a exclusive lock before being processed.
This works fine for tradition web application. But, when the web application turns to support AJAX, it turns to not efficient. It is quite possible that multiple AJAX requests are sent to server at the same time without reloading the web page. If all AJAX requests are serialized by the exclusive lock, the response is not so quick. Anyway, many AJAX requests that doesn't access same session variables are blocked as well.If we don't have a exclusive lock for each requests, then we need to treat all race condition carefully to avoid dead lock. I'm afraid that would make the code complex and buggy.
So, is there any best practice to keep session data consistent and keep code simple and clean?
This is a bit of a hypothetical question that has sent me off down the garden path... Say I have a gridview that I'd like to edit... given a method that binds the data..
private void BindGridFirst() { var data = new List<string>() { "A","B","C","D","E","F"[code]...
Now presume that I'm looking at this page, and another user has come along and made some changes to the underlying data, and I now go and click the edit button to edit D...
It's exactly the same, but the data is now changed. Once the UI updates, the user is now in edit mode against row C.Not what the user expected or wanted. How should this scenario be handled to avoid such an issue?
Quick question regarding the use of Singleton lifestyle in Windsor, and Asp.Net MVC. If the following class is registered as a singleton am I correct in thinking that I will have a race condition?
public class UserMapper : IMap { public void Map(MyDto dto, MyDomain domain)[code]...
The question is, is that correct of scenario (4 project for 4 module)? How was the correct best practice if there is? What if I create all of the module in 1 project in VWD? future maintenance handy and performance wise (and security of course).. and maybe for easier in development also :)
we are experiencing big difficulties in the configuration of ASP.Net state service and II7. The service seems not working correctly because when the application pools recycles the applicatio loose the session.If we try the same configuration in IIS6 it works correcly.What is the correct way to configure the aspnet session state service in iis7?
I Want To Use A Session Variable From One Application to Another Application. Is That Possible in ASP.NET 3.5 Or Greater To Use Session Variables As i Required. My Both Applications Host In Same IIS Server.
i am redirecting from a 3rd party site to my application where i am getting the responses of credit card no,cvv no and exp date into my application.but the session data that had come from the previous page is being lost.i have tried using application instead of session and its working fine will there be any disadvantage of using application over session
I have several pages in my application. I have used a session variable called "Session["Variable"]" that is set in page1 and page2. That means The scope should be in page1 and page2. If you go out any of these page will clear the above session variable. Is there any solution to clear the particular session varible in the application level. i.e i don't want to write the code for each and every pages...
In my web application, I use an exit button which runs session.abandon to close the session and then close the browser. It does not work with multi-tabs in IE. If I open my application in two tabs, I click on the exit button in one tab which abandons the session and close the tab. But the application in another tab can still work. Is there any way to close the session for this application in all the tabs?
I have an asp.net application and webservices (asmx) that reside in the same application but not in the same folder of the aspx files. I aslo have a winform application that uses the webservices. I have marked the webservice methods with [WebMethod(EnableSession = true)] but I am not able to share the same session values that are on the application in the webservices. The winform application has access to the sessionID from the application and I am using the following code
Uri uri = new Uri(ServerServiceUrl); _cookieContainer = new CookieContainer(); _cookieContainer.Add(new Cookie("ASP.NET_SessionId", SessionID, "/", uri.Host));
My question is: Is there something that I am missing or doing wrong that I cannot access the application sessioin from the webservices?
I apologize if this question has been asked prior, but I hunted around for about 3 hours today looking for some information. I have taken our existing application and converted it to use both Web Forms and MVC. This application uses multiple modulessuch as Products, Orders, Administration, etc... Each one of those is a web application and a hybrid that is copied into the main application at build time. We are using the Composite Web Application Block to handle our modules and IoC. I have created a Controller Factory that inherits the DefaultControllerFactory and overrides the GetControllerInstance method. However, I commented this out and it still gives the same problem. That problem being that when the controller is in an action, the Session is null. From what I understand, the Handler implements IRequiresSessionState, so the session should not be null. I have tried it out in a smaller, non-hybrid application and the Session is not null. Therefore, it is something that I am missing in the application that I have converted. If anyone has any information on what I might be doing wrong,
I know that Session is for a single user , and application is for multi user purpose.The Data in the application object is shared. Right? Then how can access the application data from an another client.
In my application. I have a master page where i have a menu control. After login i get the application role in a session. Now based on the application role I need to remove some of the items which are not required for general users.How can we check the menu and remove in master page. I tried below code but its not working.
This is quite straight forward. I'm calling a web-service (.asmx, with session enabled) from a c# application. I want each call to be with the same session key as the previous one (as opposed to creating a new session key each time).
We have a asp.net application where users will apply for jobs online. When users fill out the form the page isn't timing out the session. If a user goes back to the main page the last user's information is still available.
I have setup many websites and have never had to make any changes on IIS, under the configuration within the website. The default is 20 minutes we can change it to 8 or 10, but I think this issue should be taken care of in the code. The setting will affect the entire site instead of the pages that need to timeout.
I have a Silverlight application using a WCF service hosted in IIS. I make use of some aspects of ASP.NET. I have the following folder structure for my application:
inetput wwwroot myapp reports {user-guid-folders} report1.pdf report2.pdf App_Data (folder) bin (folder) Client_Bin (folder) (various .aspx files, plus web.config, etc.)
The application dynamically generates reports and puts them in a folder with a GUID for the name which is unique to the user. This all works fine. However, when the user logs out I was cleaning up and deleting the PDF files in their folder, then deleting their GUID folder.
Deleting the files works fine, but if I delete the folder, the application recycles (which then removes all other users' sessions - I get a Session_OnEnd event for every user's session, and an Application_OnEnd event. The next user request causes the whole application to restart. So, while I can fix this by not deleting the GUID folder (which my application itself created), what is the reason for this? Is there any way I can prevent this from happening?