ASP.NET Support Voice Column: Tracking down ASP.NET view-state issues in the Knowledge Base
To customize this column to your needs, we want to invite you to submit your ideas about topics that interest you and issues that you want to see addressed in future Knowledge Base articles and Support Voice columns. You can submit your ideas and feedback using the Ask For It form. There's also a link to the form at the bottom of this column.
This article was originally published as an ASP.NET Support Voice column in May 2004. This is not a standard KB article.
This month we are going to look at view-state issues in Microsoft ASP.NET; specifically, how to find answers to them in the Microsoft Knowledge Base (KB). View state can be a wonderful thing as long as you know how it works, how it might relate to particular issues that you encounter, and what issues to be aware of while leveraging it. Of course, if you knew what potential issues to expect, you probably would not have run into them in the first place. This is where the KB comes into play. The KB can prove to be a useful resource as long as you know how to find what you are looking for.
Tracking down ASP.NET view-state issues in the Knowledge Base
Have you ever run across the following issues?
You developed your ASP.NET application on a single development computer, and then deployed it to a Web farm. Everything seems fine until users start noticing errors stating "The viewstate is invalid for this page and might be corrupted."
You are aware of the need for setting the machine key across all the servers in your Web farm environment instead of relying on the automatically generated value, but you are not sure how to actually generate it yourself.
You are not certain whether view state is available for HTML server controls, ASP.NET Web Form Controls, or both.
You don't know what the role of the view state MAC is, how to troubleshoot issues with it, or whether there are any risks with disabling it
The KB can help you solve these issues and answer other questions you may have about view state. To start off, you should use the following keywords in your KB searches that are related to ASP.NET:
The kbASPNetSearch keyword refers to all versions of ASP.NET.
The kbASPNet100 keyword refers to the version of ASP.NET 1.0 that is included with the Microsoft .NET Framework 1.0.
The kbASPNet110 keyword refers to the version of ASP.NET 1.1 that is included with the .NET Framework 1.1.
Because we are searching the KB for ASP.NET view-state articles, we want to narrow down our results a little more. In this case, we will use the kbState keyword. This keyword is used for articles that are related to the various forms of state management, including session state, application state, view state, and others.
It is usually a good idea to set the appropriate audience keyword for your search. We will use the kbAudDeveloper keyword because our search will be related to ASP.NET development issues, and the kbAudDeveloper keyword filters the search to include only developer articles. In our ASP.NET view state example, this keyword will not have an effect, but there are times when it definitely will.
The query also needs some additional keywords to filter out all of the state management articles that are not related to view state. To do this, we will add “view state” in double quotation marks to our query. This addition brings us to another important point about searching the KB. There may be times when you have to attempt your query in a couple of different ways, depending on the search terms that you need to apply. For example, our query covers “view state” articles. Some articles may refer to view state by using the spelling "viewstate" instead. In our case, searching on “view state” alone might exclude those articles where the term "viewstate" is used instead of “view state”. This situation usually arises when a term is referred to in one way when it is written in a sentence and in another way when it is used in code. Typically, the writer, technical reviewer, or someone else along the way will have added related terms like this to the article’s metadata as additional keywords or query words so that the article is more likely to appear in a search. The problem is that there may be instances when this did not occur, so you must be aware of this if your search results do not include an article that is related to your issue.
Now that we have the core keywords for our KB search, we must decide what type of article we want to have returned. Keep in mind that you can omit a keyword if you are interested in seeing all of the related article types for your search topic.The following list offers a brief description of the article types that we can expect to be returned:
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. This is one of the more commonly documented types of articles around debugging scenarios.
kbInfo:This is an informational type of article. These types of articles are used to describe a concept or to provide additional information about an issue.
kbHowToMaster: These are how-to articles. These articles typically offer a step-by-step explanation of how to perform a specific task.
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 issue that is described in the article. The fixes may not have been fully tested and are not available yet in a service pack release.
kbBug: This keyword is reserved for articles that describe a specific bug in a product.
The following variations may cover the possibility that the additional keyword term for view state might be listed in an article as “view state” or as "viewstate":
Return all article types that are related to ASP.NET view state:
As you can see, there is actually some method to the madness when searching the KB, but it can take a little insider knowledge to make it return what you want.
While each column is usually related to a particular topic about ASP.NET and the KB, I usually try to wrap up with a few more general tips.
General search tips
When KB articles are created, they have specific product elements and keywords that are associated with them. If you know the keywords that are associated with a product or a technology, try using those instead of their more generic English terms during your initial searches. This technique 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 more information, click the following article number to view the article in the Microsoft Knowledge Base:
303992 Keywords to search .NET related Knowledge Base articles
You can also use the following information to improve your KB searches:
When you visit Microsoft Help and Support and click Search the Knowledge Base, try to limit your search by selecting the most relevant product. For example, click ASP.NET and not Visual Studio .NET or All Products. To search the KB, visit the following Microsoft Web site:
When you search the KB, you can narrow down the types of articles that are returned by including the kbAudDeveloper keyword. This keyword filters your search to include only developer-related content. This way you will not have an article about troubleshooting Microsoft Bob issues and articles about COM Interop and ASP.NET.
The following list includes general technology keywords that are related to ASP.NET:
State Management: kbState
Page/Web Form: kbWebForms
Server Controls: kbservercontrols
If your issue applies directly to Microsoft Visual Studio .NET, you can include some of the following keywords:
kbVSNET2002Ac: Visual Studio .NET 2002 Academic Edition
kbVSNET2002EntArch: Visual Studio .NET 2002 Enterprise Architect Edition
kbVSNET2002EntDev: Visual Studio .NET 2002 Enterprise Developer Edition
kbVSNET2002Pro: Visual Studio .NET 2002 Professional Edition
kbVSNET2002Search: Visual Studio .NET 2002
kbVSNET2003Ac: Visual Studio .NET 2003 Academic Edition
kbVSNET2003EntArc: Visual Studio .NET 2003 Enterprise Architect Edition
kbVSNET2003EntDev: Visual Studio .NET 2003 Enterprise Developer Edition
kbVSNET2003Pro: Visual Studio .NET 2003 Professional Edition
kbVSNET2003Search: Visual Studio .NET 2003
kbVSNETSearch: Visual Studio .NET
kbVSsearch: Visual Studio
kbIDE: Applies to issues with Visual Studio .NET integrated development environment (IDE)
Until next time, Jeremy Osborne, MCSD Technical Writer, Microsoft Developer Support
Jeremy Osborne is a technical writer for the Developer Support Content Team and has been working with ASP .NET and the .NET Framework since joining the team during the early beta period of .NET Framework 1.0. Before joining his current team, he served as a member of the ASP Developer Support Group in Microsoft Product Support Services.