Welcome to MSDN Blogs Sign in | Join | Help

Transports (RSS)

Some History of the Named Pipe, Part 4

Here are the past articles in the series to get up to date: Some History of the Named Pipe, Part 1 (Unix pipes) Some History of the Named Pipe, Part 2 (Unix fifo) Some History of the Named Pipe, Part 3 (Windows named pipe) The last part in this series

Finding Free Ports, Part 2

Yesterday I talked about the algorithm the TCP transport uses to reserve a unique port when listening on both IPv4 and IPv6 addreses is enabled for a service. Why are the random port numbers drawn from the range 49152-65535? Because that’s the range the

Finding Free Ports

One of the options for the listen URI for the TCP transport is to let the transport make the address unique by filling in details such as the port number. The socket API allows specifying a wildcard port but at the time WCF was written the wildcard port

Top Down Binding Element Order

Why does a message encoder have to be specified before the transport when constructing a binding? A message encoder doesn’t directly fit into a channel stack because the message encoder type doesn’t implement any of the channel shapes. Instead, a message

Just Exactly What You Asked For

When implementing a transport or layered channel class the marker used to indicate that your class is a channel is to implement the IChannel interface. Therefore, all channels will implement one of the known channel shapes: IInputChannel, IOutputChannel,

Levels of Tracing, Part 6

The last article in the levels of tracing series covers the logging of messages at the transport level. Transport level logging generally occurs in the message encoder as that is where the message bytes are actually processed but in some rare cases there

Non-Destructive Queue Receive State Machine

The state machine for a non-destructive receive has some noticeable similarities to the state machine for a general-purpose communication object, but it's intentional for these two state machines to be different. A non-destructive receive tries with minimal

Non-Destructive Queue Receive

You should take the time to understand the earlier articles in the series for context if you haven't already. Future of Queuing An Alternative Queuing Model The three basic operations that we talked about for queuing with non-destructive receives are

Advanced Windows Debugging

Channel 9 has put up a new video that mostly plugs the Advanced Windows Debugging book by Mario Hewardt and Daniel Pravat. I recommend the book for someone that needs to debug difficult issues dealing with native resources. For most people working with

Building with Encoders

The basis of a channel stack is that there is a series of objects that share a common interface for communication. This leaves message encoders with something of a problem as the primitive operations for encoding and decoding messages are different than

TIBCO Announces WCF Integration

At their user conference in San Francisco yesterday, TIBCO announced two integration initiatives to bring the TIBCO and Microsoft platforms closer together. TIBCO is developing a TIBCO EMS transport channel for WCF. Although Microsoft doesn't have a formal

The Pipe DACL

When a named pipe channel listener creates a new named pipe it has to supply a discretionary ACL that describes who can connect to the pipe. Here is how that DACL is constructed: An access control entry is added to deny GENERIC_ALL access to the well-known

Mapping Credentials to Authentication Schemes

You may have noticed that an HTTP binding is configured with an HttpClientCredentialType whereas an HTTP binding element is configured with an AuthenticationScheme. How are these two settings related? If you want to switch between a custom binding and

Controlling HTTP Connection Limits

I need to make many simultaneous HTTP calls to the same service from my client application. How do I increase the limit on the number of HTTP connections? This setting isn't available on any of the bindings or binding elements but the default limit can
Posted by Nicholas Allen | 3 Comments
Filed under: , , ,

Concurrent Channel Performance

Being thread-safe is different than being concurrent. The channel interfaces are thread-safe so that multiple callers can use them at the same time without getting garbled messages. However, if multiple callers try to send messages on a single channel
More Posts Next page »
 
Page view tracker