Programming WCF Services by Juval Lowy This errata page lists errors outstanding in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated February 28, 2008. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification Confirmed errors: {6} We can reword the Peer Network Address section to read: Peer Network Address Peer network addresses use net.p2p for transport, to indicate the use of the Windows peer network transport. When not using a resolver, you must specify the peer network name as well as a unique path and port. Using and configuring peer networks is beyond the scope of this book, and you will see very little mention of peer networks in subsequent chapters. (11) 1st paragraph; Widows Activation Service (WAS) should be Windows Activation Service (WAS) {31}: Example 1-12; The example is missing the tag at the begining and tag just before the tag. {46} example 1-22; change static readonly Uri BaseAddress = new Uri("net.pipe://localhost/"); to static readonly Uri BaseAddress = new Uri("net.pipe://localhost/" + Guid.NewGuid().ToString()); (56) Last sentence of the first paragraph. "how to interact programmatically at run runtime with the metadata..." should be: "how to interact programmatically at runtime with the metadata..." (85) 3rd paragraph; the last sentence used the word "important" when it appears that "imported" was intended (115) 1st paragraph; guaranties for guarantees: In addition, there are no guaranties... Should read: In addition, there are no guarantees... (153) Comment in middle of the page; Comment reads: //Outoput Should read: //Output {166}: In example 4-11, when the overrideConfig argument is true and a throttling behaviour is already present, the existing behaviour will be removed but not replaced (because the null reference condition will not be satisfied). Here is the correct code: public void SetThrottle(ServiceThrottlingBehavior serviceThrottle, bool overrideConfig) { if(State == CommunicationState.Opened) { throw new InvalidOperationException("Host is already opened"); } ServiceThrottlingBehavior throttle = Description.Behaviors.Find(); if(throttle == null) { Description.Behaviors.Add(serviceThrottle); return; } if(overrideConfig == false) { return; } Description.Behaviors.Remove(throttle); Description.Behaviors.Add(serviceThrottle); } (193) Code at bottom of the page; bindingConfiguration = "ClienCallback" Should read: bindingConfiguration = "ClientCallback" (197) Last paragraph; While events in WCF are noting more... Should read: While events in WCF are nothing more... {203} first line; TransferMode Boolean property Should be TransferMode Enum property (204) 1st code snippet; Inside the comment in the code snippet for the BasicHttpBinding class, the word "members" is misspelled: Is: //More memebrs Should be: //More members (232) Code in the first half of the page; SerivceHost host ... Should read: ServiceHost host ... The typo appears four times. (318) first paragraph, multiple occasions; ConcurrencyMode.Mutiple should be ConcurrencyMode.Multiple (325) 2nd paragraph, and in the note in the middle of the page; ConcurrencyMode.Mutiple should be ConcurrencyMode.Multiple (326) Paragraph after figure 8.3; In for If. If the figure, Instance A... Should read: In the figure, Instance A... (348) Last paragraph, line third and second to last; As long as long there are... Should read: As long as there are... (578) Code at the bottom of the page; public void on Callabck() Should read: public void on Callback()