Welcome to MSDN Blogs Sign in | Join | Help

August 2007 - Posts

Number of Connections for Secure Conversation

Why does a service call require creating multiple connections when using message security? Several common uses of message security require sending multiple messages, particularly on the first call for a given proxy. For example, one way to establish a

Semantic Annotations for WSDL

The other day the W3C released a new recommendation called Semantic Annotations for WSDL and XML Schema . Semantic annotations are used to connect an element in a structural model to an element in a semantic model. The semantic model element describes
Posted by Nicholas Allen | 0 Comments
Filed under: ,

Attribute Driven Transactions

How are transactions controlled by decorating attributes on service methods? There are three important transaction-related attributes that can be supplied through operation behaviors on the service implementation. By setting the TransactionScopeRequired

MSMQ Addressing

Here's a quick guide to how an address that uses the net.msmq scheme in WCF gets turned into an actual MSMQ address. There are three transfer protocols used with MSMQ: native, SRMP (SOAP Reliable Messaging Protocol), and SRMPS (SOAP Reliable Messaging
Posted by Nicholas Allen | 3 Comments
Filed under: , ,

Endpoints with Multiple Schemes

My service has two endpoints, an HTTP endpoint for serving metadata and a non-HTTP endpoint for the actual service. The base address of the service is the non-HTTP endpoint. How do I get the HTTP endpoint to work? I get an error even if the metadata address

Measuring Reliable Session Speed with Duplex

The results last time were in disagreement with the rule of thumb that turning on reliable messaging cuts your throughput roughly by half . One possible explanation for the disagreement is that the measurements were looking at the wrong thing. The measurement

Orcas Beta 2 Samples

When Orcas Beta 2 was released, all of the links for samples were still pointing to the Beta 1 SDK download for a few weeks. That's evidently changed recently as there is now a download available for the Orcas Beta 2 SDK samples .

Measuring Reliable Session Speed

What kind of a performance impact does ensuring reliable delivery have? A common rule of thumb that I've heard circulated in the past is that turning on a feature such as reliable messaging or security cuts your throughput roughly by half. I decided to

Faking Poison Message Handling

MSMQ has gotten a bit of an upgrade in the latest releases, particular in the area of poison message handling. Let's look a bit though at what users of Windows Server 2003 can do in the meantime before the next version of Windows Server is officially
Posted by Nicholas Allen | 2 Comments
Filed under: ,

Trace Transfer

A few days ago I talked about how to enable tracing across service boundaries . The brief summary of that story is that tracing across boundaries works by associating an identifier with each activity and using the identifier to later reconstruct the original
Posted by Nicholas Allen | 1 Comments
Filed under: ,

Supporting Multiple Security Mechanisms

How do I write a service that gives clients the option to choose between different security mechanisms for protecting a service call? For example, how can I allow clients to choose between certificates and passwords? I think that if the example choice

Security and Streaming

Can I secure a message without having to buffer the message in memory? The answer to this question is yes and no, depending on what the word secure is supposed to mean. There are differences between the operation of transport-level security and message-level

XML Support

What kinds of XML do messages support? This isn't a simple question because, like many parts of a framework, it's important to distinguish what could possibly be done given enough time versus what could easily be done given the components that ship in
Posted by Nicholas Allen | 4 Comments
Filed under: , ,

Creating Sessions over HTTP

I've got a sessionful contract that I want to use with HTTP. How do I get the HTTP transport to produce a sessionful channel shape? The basic design principle of channels is that they produce whatever channel shape is their natural message exchange pattern.

Service Contract Generation

In the post on custom namespaces a few days ago, I used svcutil to generate the service WSDL and schema description. This use of svcutil is apparently not as well understood so I thought I'd give some more details. The typical use of these programs is

Serializing UniqueId

Why can't UniqueId be serialized? Data contracts only have native support for a limited set of types. If you use a type that is not in this native set, then you'll get an exception that the data contract is invalid unless you decorate the type with attributes

Calling Services Without a Contract

Contracts are largely an illusion about the kinds of messages that can be exchanged between a client and a server. From a practical perspective, a service can describe itself using any contract it likes but the true measure of compatibility comes from

Tracing Across Services

How can I put together a stack trace that goes between service operations on different services? In a normal stack trace, all of the stack frames have a single observer that can view the sequence of calls and recreate them in the proper order. Some stack

Increasing the Maximum Fault Size

When the service sends a fault message with a large detail, my client is unable to read the fault. Changing the standard settings for the maximum message size doesn't help. How can I read large fault messages? Fault messages have their own special quota

Custom Namespaces

If you've ever looked at a generated WSDL file, you may be wondering how all of the different parts of the service description are reassembled to form WSDL. Today's article is about the namespaces in the WSDL file. Here's an example service that provides

Choosing a Port

A common question is what port should be chosen for publishing a service. I'm assuming that the question is being asked because no one has told you that you must use a certain port for contractual or operational reasons. If you have to use a particular
Posted by Nicholas Allen | 3 Comments
Filed under: , , ,

Jiggling the Handle

Minor technical hangup Wednesday when the normal post ended up not appearing in the RSS feed. I fixed it a few hours later, but if you're still missing Revealing the Hierarchy , then you can get it through the web link. Trackbacks and comments for the
Posted by Nicholas Allen | 0 Comments
Filed under:

Revealing the Hierarchy

I have a hierarchy of types that I'm using in service data contracts. When I change the service implementation, sometimes this shifts things so that a different set of the base classes and derived classes are exposed by the service. How do I present a
 
Page view tracker