The Description Tree Heirarchy

One of the things we didn’t get a chance to write as much about as we wanted to by RTM — but will fix soon — is the description tree. The service-side description tree consists of the heirarchy of objects starting with ServiceDescription class. The client-side description tree heirarchy starts from the ServiceEndpoint class. Uh-oh: The…

1

Sessionless Duplex Services, Part Two: Lifetimes and Contexts

Two posts ago I wrote the following post about how to build a duplex service and client that does NOT use sessions. Once I wrote the sample, I wanted to extend it to provide some more flexibility. I’ve done that now, but in so doing, I ran across some issues that make this type of…

0

Quick WCF Metadata Publication Walkthrough

I’ve been having a conversation with Scott Klein, who is busy writing a book on WCF (http://www.amazon.com/Professional-WCF-Pr%20ogramming-Development-Communication/dp/0470089849/sr=1-2/qid=1161195651/ref=sr_1_2/102-4898838-8936%20108?ie=UTF8&s=books). He’d been reading and following the documentation about publishing service metadata and had figured out how to do this in code, but for some reason he just didn’t understand the errors resulting from his attempt to use the…

4

Sessionless duplex services? No problem. Small issues, yes; problems, no.

Duplex is neato, definitely, because among other things it allows a service to push information at clients as it sees fit. You could just have two services, and one service throws an endpoint at the other and then listens for stuff coming back, too, but there are scenarios for this and scenarios for that. Sometimes…

4

Last note on the return of WCF client objects.

It would best be said, in the end, that a client object returns from an operation call (including a one-way operation) when the outbound message is sent by the transport. This can be a network call, but need not be. The most obvious example is handing the message off to a message queue. Sigh. I…

0

OperationContractAttribute.IsOneWay: One more blocking scenario.

As I mentioned in the previous post, there are scenarios in which one-way operations can block a client. After investigation I’ve discovered yet another, shown to me by John Justice, Michael Marucheck, and Ed Pinto. The scenario is quite specific. The client can block on the service when the ConcurrencyMode is set to ConcurrencyMode.Single and…

0

OperationContractAttribute.IsOneWay operations aren’t simply fire-and-forget.

Although I am responsible for writing a good portion of the programmer documentation for WCF, there are always little things that you “realize” suddenly that you didn’t quite understand. Today, I learned from Shy Cohen and Maheshwar Jayaraman (thanks guys!) about OperationContractAttribute.IsOneWay — the external documentation for which is here and here and is wrong, or certainly not right…

1

Extending WSDL and Policy, Part 2. Importing custom policy assertions.

Yesterday I outlined how to export custom policy assertions and why you would do such a thing. One thing I failed to note explicitly, but that should be obvious, is that policy assertions are merely XML elements. At a fundamental level, that’s all they are. So in addition to conveying binding-related information, they can also…

0

Extending WSDL and Policy, Part 1. Exporting custom policy assertions.

I’ve been busy for a while trying to update the documentation for all the changes that have happened since the February release. That meant, definitely, that I hadn’t blogged for a while. But now I’ve got some things that it’s important to get on about. The first is how to extend the policy system and…

1

Behaviors can’t really mess with the contract directly

This is something that tripped me up for a while, so I figure that while I’m dumping little tidbits I might as well offer this one. When you implement an I*Behavior, the Apply*Behavior methods you are passed a ServiceDescription, or ContractDescription, or EndpointDescription. There is this implication that you can, in a behavior, modify that…

0