Book Text:
"Set Welcome.aspx as the start page."
How?
Page 563 (5/01/02) Ex 12-15 Try block. Add the following as the first line in the Try block.
AddHandler myDataAdapter.RowUpdated, AddressOf OnRowUpdate
Page 658 (and 659)
Currently: output.Write( "<TR><TD colspan = '2'> align='center'" );
should be: output.Write( "<TR><TD colspan='2' align='center'>" );
Page 697 (5/01/02) Example 16-17, 16-23. Change variable name from stock to theStock
Page 754 (11/4/02) Replace the first paragraph with the following:
Cached pages or portions of pages are stored in memory. Subsequent
requests for the same page or portion of page are fulfilled directly
from memory, rather than recreated by the page's program logic. Since
memory is a limited resource, output caching must be used carefully to
avoid scaling problems.
Page 754 (11/4/02) Replace the paragraph under the Object Caching heading:
Object caching is the caching of objects on the page, such as data bound
controls. Object caching also stores the cached data in server memory,
and so must be used carefully to avoid scaling problems.
Page 759 (11/4/02) - Paragraph under Location heading
Currently: hard drive
Should be: machine
Page 777 (8/16/02) Examples 18-15 and 18-16 require the following Import directives in order for
the pages to properly compile and run:
Import namespace="System.Data"
Import namespace="System.Xml"
Page 809 (5/01/02) Bottom of the page, remove the last paragraph and code snippet
Page 821 (11/6/02) Example 19-3 is not shown in VB.NET. Here is the code:
if CheckCredentials(txtUserName.Text, txtPassword.Text) then
' Do stuff if authenticated
else
' Do stuff if notauthenticated
end if
private function CheckCredentials(username as string, password as
string) as Boolean
' Do a database or XML lookup to see if the username and
' password are valid.
' If valid, then return true, otherwise return false.
end function
Page 834 Second paragraph under the heading Impersonation, which begins with "By default, ..."
should be replaced with the following paragraph:
By default, ASP.NET processes run with a userName of "machine" (note all lowercase). This causes
the processes to run under a special low privilege user account named "ASPNET", which is created
when the ASP.NET is installed. It is also possible to change the value of userName to "SYSTEM",
which gives the processes full access to all resources, or to any valid username which is a member
of a domain which has sufficient access rights to the web server. If there is a security breach,
then a malicious user may be able to run processes with the same access to resources provided by
the userName assigned to the ASP.NET processes.
Page 834 Third paragraph under the heading Impersonation, the next to last and last lines, which
currently read "not SYSTEM." should be modified to read "not the username specified as as running
all ASP.NET processes."
Page 835 Under the heading Application Identity, the first sentence should be modified to read:
As stated earlier, the default identity for ASP.NET is "machine".
Page 835 The code snippet with the default processModel section from machine.config has an error.
The default value of userName should be "machine" (note all lowercase) rather than "SYSTEM".
Pages 835 - 836 The last paragraph of p. 835 and the first two paragraphs of p. 836 should be
modified to read: The relevant attributes here are userName and password. There are two special
values for userName: SYSTEM and machine (note all lowercase). The default is machine. In either
case the value for password needs to be AutoGenerate, which forces the system to create its own
password. As mentioned above, when ASP.NET assumes the username SYSTEM, it has full access to all
resources. The default value of userName, machine, will cause the process to run using a special
account, installed automatically when ASP.NET is installed, called ASPNET. This account is a member
of the Users group, which is prevented from making system-wide changes.
Page 886 Example 20-18 (6/14/2002)
Currently: <section name = "altDB" type="System.Configration.NameValueSectionHandler, System" />
Should be: <section name = "altDB" type = "System.Configuration.NameValueSectionHandler, System,
Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
Note: for further documentation, check sdk documentation, search on Custom Elements and choose
Custom Element for NameValueSectionHandler.
Page 878, after code snippet for processModel, please add this:Two of these attributes are worth
special mention, since they can improve the stability of the system. The timeout attribute controls
how often every process is automatically shut down and restarted. The default value is "Infinite",
indicating that the process is never restarted. It may also have a time value of the form hh:mm:ss.
So for example, if you want every process to restart every 20 minutes, use the value "00:20:00".
The requestLimit attribute specifies how many requests each process can receive before it is re-
started. The default value is also "Infinite". Typical values would be an integer inside quotes.
So to restart every process every 5000 requests, use the value "5000".
Page 875 (5/21/02) The last paragraph under pages, describing the AutoEventWireup attribute is
incorrect. It should be replaced with the following paragraphs:
When AutoEventWireup is true (the default value outside of VS.NET), then the .NET Framework calls
page events (Page_Init & Page_Load) automatically, with no code necessary to explicitly add an event
handler to an event delegate.
If AutoEventWireup is false (the default when using VS.NET), you must explicitly add event handler
methods to the event delegates. VS.NET does this for you.