This month we are going to take a look at ASP.NET session
state management issues and how to find answers to them in the Knowledge Base
(KB). Session state can be a very useful tool for your ASP.NET applications,
but there are some issues you need to be aware of depending on the session
state mode you are using, whether or not your application is running in a Web
farm, and so on. If you have ever come across the following issues or
scenarios, then learning how to leverage the KB will prove useful:
- Session state variables are lost when using InProc mode.
- Session_End is not fired.
- You want to use SqlServer mode session state, but you want
to store your session state data in a different database than tempdb.
- Session state appears to be lost when directed to certain
Web servers in your Web farm.
- You want to disable session state at the application level.
-
You want to disable session state at the page level.
- You
want to use session state in your application, but you are not sure which mode
to use (SqlServer, StateServer, or InProc).
The majority of the terms we will be using in our search
examples in the next sections should be somewhat familiar for those of you that
have read the previous installments of this column, but I have listed a cheat
sheet explanation in the "General search tips" section at the end of this
article to better explain what they mean.
Roadmap documents
Several of the key areas around ASP.NET have roadmap documents for
them in the KB. If you are new to ASP.NET or a particular key area, and you are
looking for informational content with links and resources associated to that
topic, then you will probably find the roadmap article fairly useful. For
example, ASP.NET has roadmap articles for state management, HTTP modules and
HTTP handlers, server controls, security, and so forth. They are intended to
provide some introductory insight into a topic that is straight and to the
point. To start with, we will try to find all the roadmap articles around
ASP.NET using the following search terms:
kbASPNetSearch kbAudDeveloper kbArtTypeRoadmap
At the time of this writing, the search resulted in
eight articles covering the key topic areas identified by the ASP.NET support
team, which are the topics I made mention of previously. This is a good start,
but in our scenario, we are only looking for articles related to ASP.NET
session state. Because ASP.NET session state is actually rolled up under state
management as far as the KB keywords are concerned, we need to instruct the KB
to limit our results appropriately. To do this, we will add the kbState
keyword. Our search terms now become the following:
kbASPNetSearch kbAudDeveloper kbArtTypeRoadmap kbState
Now that we have added the kbState keyword, only the
general ASP.NET roadmap (KB 305140) and state management roadmap (KB 307598) articles
are returned. The general ASP.NET roadmap article is returned because it
contains the kbState keyword, which makes sense due to the fact that it briefly
discusses state management and includes a link to the ASP.NET state management
roadmap article, 307598.
Filtering by article type
In the previous example we were looking specifically for roadmap
articles in the KB, but what if we were looking for bug articles or other
types? To do this we will need to provide the desired article type in our
search string. The following is a list of the most common types:
- kbPrb
This type of article is related to perceived issues with the
product. This means that you are experiencing an issue with the product, but it
is not a bug. - kbInfo
This is an informational type of article. These types of
articles are used to describe a concept or provide additional information
around an issue. - kbHowToMaster
These are how-to articles. These are the articles that offer
mainly a step-by-step explanation on how to perform a specific task.
Note We are in the process of adopting new asset tags for KB articles.
The kbHowToMaster keyword will be phased out in favor of kbHowTo in the future.
For now you may want to try alternative search terms leveraging both keywords
until this policy change is in full effect. Look for a future installment of
this column to cover this change in greater detail. - kbQFE
This keyword is used to distinguish hotfix articles. These
types of articles are used to describe issues where a fix is available for the
specific issue described in the article, but may not have been fully tested and
is not yet available in a service pack release. - kbBug
This keyword is reserved for articles that call out a
specific bug in a product.
To provide an example of these keywords in action, let's assume
we are looking for all the bug articles around ASP.NET session state. To find
these we will use the kbASPNetSearch, kbAudDeveloper, and kbState keywords from
the previous example, but we will replace the kbArtTypeRoadmap keyword with
kbBug.
kbASPNetSearch kbAudDeveloper kbState kbBug
This will give us all the bug articles around all
versions of ASP.NET listed in the KB. You can also limit your search to a
specific version of ASP.NET by using the keyword associated with that
particular version instead of the more general kbASPNetSearch keyword. Refer to
the "General search tips" section listed at the end of this article for more
information.
Refining your search
Keywords can help quite a bit when searching the KB. They make
your queries much more precise, and the overall experience of searching the KB
more fruitful. You should generally start off with the established KB keywords
and then try narrowing down your results using additional terms if necessary.
For example, if we are searching for all articles related to ASP.NET session
state management when using SqlServer mode, then we may want to try and narrow
our results down a little. Since the term SqlServer refers to the specific way
that mode is specified in the Web.config file, it might be useful to try an
alternate version of your search using "Sql Server" as well. As a general rule,
if you are not finding the desired information in your search results, it is a
good idea to try your query with an alternate form of more code-specific terms.
Our more focused query should appear as follows after applying the additional
search terms:
- kbASPNetSearch kbAudDeveloper kbState SqlServer
- kbASPNetSearch kbAudDeveloper kbState Sql
Server
Additional resources
In this section I have listed some additional non-KB articles around ASP.NET
session state management, and some general links to ASP.NET-related Web sites
that you may find useful. If you are not familiar with them, then you may want
to take a minute and check them out.
- The official Microsoft ASP.NET site:This is a great place to find new information around ASP.NET. You can use
the forums to find answers to your questions, and you might be able to help
someone else with issues you've already encountered and resolved. Be sure to
check out the "Community Sites" section as well.
- ASP.NET Forums:A very informative post from the Microsoft ASP.NET site about
ASP.NET session state management. This is the kind of great information you can
expect to find in the forums:
- ASP.NET Developer Center:
MSDN Content Strategist Kent Sharkey keeps this site packed full of the
latest and most useful information to ASP.NET developers. There are "Developer
Center" pages for the key technology areas around .NET. These will provide a
good launch pad into the MSDN site and other related resources.
General search tips
Because the goal of this column is to help you better leverage the
information contained in the KB, we always wrap up with a cheat-sheet covering
the most common keywords. There are tons of great articles on ASP.NET out
there, but you generally come to the KB with a particular issue or need. The
following search tips are designed to not only help you find the information
you need, but to also help you find it faster and with less overall
frustration.
When Knowledge Base articles are created, they have
specific "product elements" and keywords associated with them. If you know the
keywords associated with a product or technology, try using those in place of
their more generic English terms during your initial searches. This typically
offers a bit more precision than just stringing together words or phrases. The
following is a list of tips that should help improve your experience with the
KB. For additional information, see the following KB article:
303992 Keywords to search .NET-related Knowledge Base articles
- When you visit
Microsoft Help and
Support (http://support.microsoft.com) and click Search the
Knowledge Base, try to limit your search by selecting the most relevant product
(for example, select "ASP.NET" and not "Visual Studio .NET" or "All
Products").
- When searching the KB, you can narrow down the
types of articles returned by supplying the kbAudDeveloper keyword. This filters your search to include only
developer-related content. This way you shouldn't have an article on
troubleshooting Microsoft Bob issues show up along side a bunch of articles
around COM Interop and ASP.NET.
- The following provides a general ASP.NET-related technology
keyword reference:
- Caching : kbCaching
- Configuration: kbConfig
- Connectivity: kbConnectivity
- State Management: kbState
- Cookies: kbCookie
- DataBinding: kbDataBinding
- Debugging: kbDebug
- Deployment: kbDeployment
- HttpRuntime: kbHttpRuntime
- Migration: kbMigration
- Page/Web Form: kbWebForms
- Server Controls: kbservercontrols
- Validation: kbValidation
- Security: kbSecurity
- If your issue applies to Visual Studio .NET directly, then
you might try including some of the following keywords:
- kbVSNET2002Ac (Visual Studio .NET 2002 Academic version)
- kbVSNET2002EntArch (Visual Studio .NET 2002 Enterprise Architect)
- kbVSNET2002EntDev (Visual Studio .NET 2002 Enterprise Developer)
- kbVSNET2002Pro (Visual Studio .NET 2002 Professional)
- kbVSNET2002Search (Applies to Visual Studio .NET 2002 in general)
- kbVSNET2003Ac (Visual Studio .NET 2003 Academic version)
- kbVSNET2003EntArc (Visual Studio .NET 2003 Enterprise Architect)
- kbVSNET2003EntDev (Visual Studio .NET 2003 Enterprise Developer)
- kbVSNET2003Pro (Visual Studio .NET 2003 Professional)
- kbVSNET2003Search (Visual Studio .NET 2003 in general)Development
Environment)
- kbVSNETSearch (Visual Studio .NET, not a specific version)
- kbVSsearch (Visual Studio in general, not a specific version)
- kbIDE (Issues with the Integrated
- Use article type keywords in your queries so that only the
appropriate information is returned in your search results:
- kbPrb
This type of article is related to perceived issues with the
product. This means that you are experiencing an issue with the product, but it
isn't a bug. - kbInfo
This is an informational type of article. These types of
articles are used to describe a concept or provide additional information
around an issue. - kbHowToMaster
These are how-to articles. These are the articles that offer
mainly a step-by-step explanation about how to perform a specific task.
Note We are in the process of adopting new asset tags for KB articles.
The kbHowToMaster keyword will be phased out in favor of kbHowTo in the future.
For now you may want to try alternative search terms leveraging both keywords
until this policy change is in full effect. Look for a future installment of
this column to cover this change in greater detail. - kbQFE
This keyword is used to distinguish hotfix articles. These
types of articles are used to describe issues where a fix is available for the
specific issue described in the article, but may not have been fully tested and
is not yet available in a service pack release. - kbBug
This keyword is reserved for articles that call out a
specific bug in a product.