The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Version |
Location |
Description |
Submitted by |
Date submitted |
|
NA
Example 1-4 |
The author says "On the client side, the service contract can still be represented as an interface (the client only requires metadata) but the name of that interface (the service contract) must match the new service contract name, HelloIndigoService?instead of IHelloIndigoService."
But this has actually not been changed in the example 1-4:
// Client Project - ServiceProxy.cs
[ServiceContract(Name="HelloIndigoService",
Namespace = "http://www.thatindigogirl.com/samples/2006/06")]
public interface IHelloIndigoService
{
[OperationContract]
string HelloIndigo();
}
It Should be
// Client Project - ServiceProxy.cs
[ServiceContract(Name="HelloIndigoService",
Namespace = "http://www.thatindigogirl.com/samples/2006/06")]
public interface HelloIndigoService
{
[OperationContract]
string HelloIndigo();
}
|
Anonymous |
Jun 17, 2010 |
|
1.5.1.5
Figure 1-24 |
svcutil/d:c:\LearningWCF\Labs\Chapter1\HelloIndigo\Client
/o:serviceproxy.cs/config:app.config http://localhost:8000/
HelloIndigo
should be
svcutil/d:c:\LearningWCF\Labs\Chapter1\HelloIndigo\Client
/o:serviceproxy.cs /config:app.config http://localhost:8000/
HelloIndigo
and
svcutil/d:"c\Learning WCF\Labs\Chapter1\HelloIndigo\Client"
/o:serviceproxy.cs/config:app.config http://locahost:8000/HelloIndigo
should be
svcutil/d:"c\Learning WCF\Labs\Chapter1\HelloIndigo\Client"
/o:serviceproxy.cs /config:app.config http://locahost:8000/HelloIndigo
(Spaces added after "serviceproxy.cs" in both cases)
|
Richard DesLonde |
Aug 20, 2009 |
|
1.5.2
4th paragraph |
Reads
"It also includes a smaple data contract (to be discussed in Chapter 2."
Should read
"It also includes a sample data contract (to be discussed in Chapter 2"
|
Richard DesLonde |
Aug 20, 2009 |
|
1.5.3
Second Code example |
svcutil /d:<YourLearningWCFPath>\Labs\Chapter1\HelloIndigo\Client /o:serviceproxy.cs/config:noconfig http://localhost:8000/HelloIndigo
should be
svcutil /d:<YourLearningWCFPath>\Labs\Chapter1\HelloIndigo\Client /o:serviceproxy.cs /config:noconfig http://localhost:8000/HelloIndigo
(Added space after "serviceproxy.cs")
|
Richard DesLonde |
Aug 20, 2009 |
Printed |
Page 23
Example 1-1. Code to programatically initialize the ServiceHost |
(May 2007: First Edition)
Step 5.Compile and run the host will not work yet, unless you comment out some lines as follows:
static void Main(string[] args)
{
//using (ServiceHost host = new ServiceHost(typeof(HelloIndigo.HelloIndigoService),
// new Uri("http://localhost:8000/HelloIndigo")))
//{
// host.AddServiceEndpoint(typeof(HelloIndigo.HelloIndigoService),
// new BasicHttpBinding(),
// "HelloIndigoService");
// host.Open();
Console.WriteLine("Press <ENTER> to terminate the service host");
Console.ReadLine();
//}
}
Besides:
host.AddServiceEndpoint(typeof(HelloIndigo.IHelloIndigoService),
new BasicHttpBinding(),
"HelloIndigoService");
Should be:
host.AddServiceEndpoint(typeof(HelloIndigo.HelloIndigoService),
new BasicHttpBinding(),
"HelloIndigoService");
|
Hermann R?sch |
Sep 10, 2009 |
Printed |
Page 24
Instructions don't work |
The instructions say, "Compile the solution and run the Host project first, followed by the Client project". Attempting to execute Client, I receive this error:
Could not connect to http://localhost:8000/HelloIndigo/HelloIndigoService. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8000.
Googling exactly this error yields this link:
http://stackoverflow.com/questions/2888139/endpointnotfoundexception-when-working-through-tutorials-in-learning-wcf
|
Bob Jones |
Oct 28, 2010 |
Printed |
Page 32
#5 code example (5/09 printing) |
The step 5 code example shows:
using System.ServiceModel;
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(HelloIndigoService)))
{
host.Open();
Console.WriteLine("Press <ENTER> to terminate the host application");
Console.ReadLine();
{ // this line is backwards as I prev. submitted
} // there are also to many braces one should be removed
}
This would not work for me. I had to change it as follows:
using System.ServiceModel;
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(HelloIndigoService));
host.Open();
Console.WriteLine("Press <ENTER> to terminate the host application");
Console.ReadLine();
}
|
Anonymous |
May 11, 2010 |
Printed |
Page 33
Top of page, code example (5/09 printing) |
In the code example that ends at the top of page 33, it shows:
Console.WriteLine("Press <ENTER> to terminate the host application");
Console.ReadLine();
{ // this brace is backwards
}
}
It should be:
Console.WriteLine("Press <ENTER> to terminate the host application");
Console.ReadLine();
}
}
}
|
Anonymous |
May 11, 2010 |
Printed |
Page 37
#1 |
Under "Generating a proxy with Add Service Reference", bullet # 1 says to right-click on the Client node and select Add Service Reference. There is no "Add Service Reference" menu item in Visual Studio 2008 when using Visual Basic as the source language.
This could be because the Visual Studio Conversion Wizard always opens anytime I open a solution downloaded from the book's page on the oreilly site.
When creating a Console application from scratch the Add Service Reference is present/visible.
|
Anonymous |
Feb 28, 2013 |
Printed |
Page 40
#1 under the "Caution/Warning" (5/09 printing) |
Under the "Caution/Warning" note, there is an example of what your command/path should look like if the path has spaces. It shows (part of the command):
svcutil /d:"c\Learning WCF\Labs\Chapter1\HelloIndigo\Client"
it is missing a ":". It should read as follows:
svcutil /d:"c:\Learning WCF\Labs\Chapter1\HelloIndigo\Client"
|
Anonymous |
May 11, 2010 |
PDF |
Page 41
Section "Service Template", line 13 |
The original text doesn't seem to make sense. Please check the suggestion below.
Original:
To host services belonging to a class library project you can either use the WCF Service Host create a separate host project for the service.
Suggestion:
... either use the WCF Service Host >>>or the WCF Service Library to <<< create ...
(added text between the "arrows")
|
Nelson Ferrari |
Mar 22, 2010 |
Printed |
Page 41
near end of main paragraph |
Minor typo: "To host services belonging to a class library project you can either use the WCF Service Host create a separate host project for the service."
It appears "or" should be inserted before "create".
|
Dave Slayton |
Jan 10, 2012 |
Printed |
Page 43
1/3 down the page |
"...is still useful for automating how proxies and service contracts generated..."
Think you're missing the word "are" before "generated".
|
Dave Slayton |
Jan 10, 2012 |
PDF |
Page 48
First paragraph |
effect instead of affect:
Original text:
Different behaviors are available to clients and services,since the local affect on the service model also differs.
Should be:
Different behaviors are available to clients and services,since the local effect on the service model also differs.
|
Carlos Ceconi |
Jul 06, 2012 |
Printed |
Page 48
Example 1-10 |
The behavior on client side in the example is under ServiceBehavior, it should be under ClientBehavior tag
Original:
<behaviors>
<serviceBehavior>
<behavior name="clientBehavior">
...
</behavior>
</serviceBehavior>
</behaviors>
Corrected:
<behaviors>
<clientBehavior>
<behavior name="clientBehavior">
...
</behavior>
</clientBehavior>
</behaviors>
|
Niraj Doshi |
Jan 14, 2018 |
Printed |
Page 92
Customising message parameters sect 1 |
I think the interface defined in the lab is invalid
Visual Studio 2008 complains if I enter
string NewOperations(string string);
It is expecting an identifier so I would change it to something like
string NewOperations(string newstring);
|
Keith Hobbs |
Jan 27, 2010 |
Printed |
Page 100
example 2-8, NewOperationResult element of response message body |
In both examples on this page and the next, it appears that the string "hello" is being passed as an argument to NewOperation() and yet the response message body reads, in part,
<NewOperationResult>IServiceA.NewOperation() invoked with </NewOperationResult>
Shouldn't it read "invoked with hello" just as the one on the top of the next page does?
|
Dave Slayton |
Jan 16, 2012 |
Printed |
Page 104
Figure 2-3 |
Two flow chart boxes on the bottom right corner are incorrect. It should be V2 Service Contract (Yes Inheritance) and V1 Endpoint. So if you follow the flow chart from the top, it should be:
V1 Service Contract Changed --> Operation Changed (N) --> Operation Added? (Y) --> V2 Service Contract (Yes Inheritance) --> V1 Endpoint.
|
Sam Kim |
Apr 15, 2012 |
Printed |
Page 108
last line above tip/suggestion at bottom of page |
domain for the type listed as shemas.datacontract.org where it should be schemas.datacontract.org
|
Dave Slayton |
Dec 19, 2011 |
Printed |
Page 119
second "code snippet" |
Each of the three [EnumMember(Value=blah] items are missing their right parentheses.
|
Dave Slayton |
Jan 17, 2012 |
Printed |
Page 120
1/3 down the page |
"You can also use the ContactNamespaceAttribute to automatically..."
That should be "ContractNamespaceAttribute".
|
Dave Slayton |
Jan 17, 2012 |
Printed |
Page 138
3rd Paragraph, line 9 from the bottom |
"you can modify the client's version of the SaveGigRequest message contract" should be "version of the GetGigRequest message contract"
|
Anonymous |
Sep 23, 2010 |
Printed |
Page 168
top of page |
top of page 168:
"In this lab, *you'll exposed* web service endpoints....."
Future and past tense in the same phrase.
|
Anonymous |
Jan 19, 2012 |
Printed |
Page 183
last line |
Minor discrepancy between supplied working code and the printed book: book reports the name of the script to be run is Photos_DeleteAll.sql when the file name of the script supplied in the sample code is photos_deleteallrecords.sql.
|
Dave Slayton |
Jan 22, 2012 |
Printed |
Page 194
3rd line upper code snippet |
// During intialization
should read
// During initialization
|
Dave Slayton |
Jan 23, 2012 |
Printed |
Page 194
last line in first code snippet |
is
S_serviceHost.MyHost.Close();
correct? The 'S' is capitalized, for one thing, and what about the "MyHost" part?
|
Dave Slayton |
Jan 23, 2012 |
Printed |
Page 200
subsection "Duplex proxies" |
I jumped right into the Section "One-Way and Duplex Communication" because I need it in my work, so it could be that I miss something from earlier pages of the book and therefore don't understand this issue, but please look yourself, you say:
DuplexClientBase<T> provides a special constructor that requires a reference to the callback contract implementation, wrapped in an InstanceContext, as shown here:
public partial class HelloIndigoContractClient : System.ServiceModel.DuplexClientBase<Client.localhost.HelloIndigoContract>, Client.localhost.HelloIndigoContract {...}
So, it looks like you are inheriting the class from DuplexClientBase<T> and from T itself, so T must be an interface, since multiple inheritance isn't allowed! So in your code T must be inferred to Client.localhost.HelloIndigoContract and because you omitted the letter "I" before HelloIndigoContract then you either don't follow the "I" prefix convention for interfaces in this example or there is a sort of error in the code. Also I don't see where
InstanceContext is working in this code. Last question: Is Client.localhost a namespace? Is it defined earlier in the book? I skimmed through the pages but I did not find it.
|
Anonymous |
Feb 06, 2011 |
Printed |
Page 201
very near bottom |
"This is a problematic for machines....."
I think the "a" is extraneous there.....
|
Dave Slayton |
Jan 23, 2012 |
Printed |
Page 202
first line of first paragraph of lab |
"...duplex communication over NetTpcBinding and..."
should be "NetTcpBinding" right?
|
Dave Slayton |
Jan 23, 2012 |
Printed |
Page 214
in lab step 2 |
In all these errors I've been reporting, I'm using the printed version that has
[LSI] and [2011-02-07]
at the bottom of the colophon page....
but I'm starting to wonder if there isn't some kind of pagination discrepancy happening here, relative to the reported errors...I see that there's one reported as being on page 211, the same thing I came to report: "the" misspelled as "teh" in the 4th line of step 2 of the lab. However, since I supposedly have the newest printing, and the errata report a very similar error was already fixed, but on page 211, not 214....and besides if it's really the same error, it HASN'T been fixed. Confusion reigns I guess.
|
Dave Slayton |
Jan 24, 2012 |
Printed |
Page 237
inside example 4-1 |
This is from printed copy with [LSI][2011-02-07] on colophon page.
Regarding the code example: it's supposed to closely mimic the earlier examples, such as the one on page 23, or so it appears. Then, will this code work? Here you're using no base address in creating the ServiceHost instance, so isn't the FULL URL supplied to AddServiceEndpoint() incomplete? Shouldn't it be
"net.tcp://localhost:9000/HelloIndigo/HelloIndigoService"
??
Or am I misunderstanding?
|
Dave Slayton |
Jan 25, 2012 |
Printed |
Page 238
very first line (code) |
again: colophon has [LSI][2011-02-07]
Likewise here if the complete address (with no base address) is designed to replace the one used in the programmatic section on the previous page, shouldn't
"net.tcp://localhost:9000/HelloIndigoService"
actually say
"net.tcp://localhost:9000/HelloIndigo/HelloIndigoService"
in order to be complete? Or do I just not get this?
|
Dave Slayton |
Jan 25, 2012 |
Printed |
Page 238
disregard previous two reports |
Please disregard the previous two reports from me. I now think I was wrong. I have sent an email to the author pleading for info to help clear up my lack of understanding.
|
Dave Slayton |
Jan 25, 2012 |
Printed |
Page 319
4th line |
2011--02-07 reprint
"the callback return simply reaquires the lock"
should be "reacquires"...
|
Dave Slayton |
Jan 30, 2012 |
Printed |
Page 329
3rd line of note |
(wow don't you have the capability of simply running a spell check on the electronic manuscript to avoid typos?)
"yeild" should be "yield"
|
Dave Slayton |
Feb 01, 2012 |
Printed |
Page 414
middle |
"Advanced dettings" !?
I guess you mean "Advanced settings" unless "detting" is some new WCF concept I don't understand yet.....
|
Dave Slayton |
Feb 01, 2012 |
Printed |
Page 431
4th line from the bottom |
"used" is misspelled here as "ussed"
|
Dave Slayton |
Feb 09, 2012 |
Printed |
Page 439
Example 7-4 web.config file |
line 12: <behavior name = "serviceBehavior" [>]
Shouldn't there be a closing "forward slash" for this line?
|
Jim Kay |
Nov 15, 2012 |
Printed |
Page 516
2nd Tip icon text |
This is for the 1st edition of the book. The <YourLearningWCFPath>\Samples\Exceptions\ThrowingFaults code sample is missing from the downloaded code included in the LearningWCF.ZIP (and also the LearningWCFVS2008.ZIP) file.
|
Anonymous |
Feb 02, 2010 |
Printed |
Page 518
Tip icon text |
This is for the 1st edition of the book. The <YourLearningWCFPath>\Samples\Exceptions\FaultDataContracts code sample is missing from the downloaded code included in the LearningWCF.ZIP (and also the LearningWCFVS2008.ZIP) file.
|
Anonymous |
Feb 02, 2010 |