This article is the third part of the "Practical Approach To ASP.NET Web Services" series. To read the first two parts, you can go through the following links.
To use ASP.NET Session object in a Web Service, the WebService class must inherit from System.Web.Services. WebService class and the Enable Session property of Web Method attribute must be set to true. Let’s see how can we do that . So, let’s flip to VS. Now, in our Web Service (Calculator Web Service) We already have a class that is inheriting from System.Web.Services.WebService. Now, we will set EnableSession property to True. We want to display the recent calculations which the user has performed. So, we will be using Session object for that. So, this is a straight forward code. We are using a list to display list of recent calculations. Now, we are using a Session object and key. Then, we are looping those. If it is null, the user doesn’t perform any calculations and it will display the list. But, if the user has performed some sort of calculations, we will be storing that in a session and displaying those. Then, we are concatenating that calculation with the first number and the second number respectively. Now, let’s test our Web Service. As you can see from above screenshot, we have got two methods - Add and getCalcualtions. We will click on Add and perform some calculations. Perform 3-4 operations. Then, get back and test Getcalculations method and invoke. As you can see from the above output, I have performed two operations and they are showing me the numbers and output. This means, we have successfully saved our session in our object. Now, we will show this in our webform in a Grid. Add a Gridview Control in our aspx page and click on Service and update the proxy class. We have added getCalculations method and this will update our proxy class. Now, go back to the code behind and let's bind our GridView. Now, let’s test our application and perform some operations. When you reload the page and re run your application in GridView, it says that you haven’t performed any calculations. The client application is not storing the session. The possible reason for this is that the client application is sending the same Session ID to the Web Service. This is why it not storing any session. Now, in web.config file, locate binding tag. In that, set "allowCookies= true". Now, just run the application and perform some calculations. You can see that the Grid is showing the recent calculations which are performed, that means our client application is now sending the same Session ID to our Web Service . If you want to change the header of the GridView, use the following code. Now, let's check the output.