Welcome to MSDN Blogs Sign in | Join | Help

February 2007 - Posts

A Trick with Faults (Discussion)

The code yesterday was meant to motivate a side-discussion on how faults get generated and handled between the server and client proxy. If you tried running that sample, then you would have seen that despite the FaultException being thrown on the service,
Posted by Nicholas Allen | 3 Comments
Filed under: , ,

A Trick with Faults

What does this code print? It seems like both choices are quite reasonable. I'll have some discussion about this tomorrow. [ServiceContract] interface IService { [OperationContract(Action= "foo" )] Message Verb(Message input); } class Service : IService
Posted by Nicholas Allen | 1 Comments
Filed under: , ,

Channels Illustrated

In the channel development series last week, we looked at the characteristics of channels (protocol channels, transport channels, and why you would write a channel at all). Let's use a specific example to illustrate those points. Although the protocol

Tuning Contracts for Performance

I have a service contract with a few operations that take large inputs and do a lot of processing. If I configure the service quotas with small values to prevent too many of the expensive operations from happening at once, then the overall throughput

Transport Channels

Let's shift gears for a bit and talk about transport channels now as opposed to protocol channels. Everything that was said yesterday for channel stacks is still true when we add transport channels to the picture. Everything that was said yesterday for

Protocol Channels

There are only two kinds of channels in the world. Today we'll talk about protocol channels. Tomorrow we'll talk about transport channels. Transport channels move data to and from the network Protocol channels move data between the application and transport

When to Write a Channel

Today's article is about the tension between two simple points. Writing channels can generally be used to solve just about any problem in WCF Writing channels is generally the most time-consuming way to solve a problem in WCF The key inference that you

Channel Development Tour, Part 1

This is the start of a long series on channel development. Some of the material in the series is going to duplicate topics that I've written about in the past. That's ok. The goal of the series is to have a walkthrough that is self-contained and in one
Posted by Nicholas Allen | 3 Comments
Filed under: ,

Table of Contents Scratch Work

I haven't forgotten about the goal to put together a table of contents for all of these articles. The part I find hardest about this process is taking the articles that talk about five or six topics and figuring out a single place where they should go.
Posted by Nicholas Allen | 4 Comments
Filed under:

Stashing Data in Extensible Objects

How do I store some state about the current request so that I can use it later during the same service operation? There are several different standard contexts in which state can be stored. Each of them works the same so I'll present all of them together
Posted by Nicholas Allen | 3 Comments
Filed under: ,

Jobs, Jobs, Jobs

How do I find out about jobs working on WCF? That's an excellent question. I went to the Microsoft career site and I had a hell of a time finding the jobs that I knew we had available. I ended up finding them by reverse engineering the positions I knew

More Poison Message Handling

We saw the poison message handling strategies for MSMQ 3 and MSMQ 4 yesterday, but how many different strategies can we come up with? Let us count the ways. I've roughly ordered these by increasing complexity. Discard. We could simply throw away any message
Posted by Nicholas Allen | 2 Comments
Filed under:

MSMQ and Poison Messages

Last time we looked at the idea of poison messages in queues - messages that are permanently unprocessable. If we don't handle a poison message carefully, then we will be locked into a permanent cycle of requesting the message from the queue, failing
Posted by Nicholas Allen | 1 Comments
Filed under: ,

Poison Message Handling

I've got a few posts on queued and durable messaging coming up over the next few weeks, and we're going to need some vocabulary for those posts that hasn't been used yet while talking about web services. Today's article covers general background around

Durable is More than Duplex

Clemens and Shy pointed me at this article by Harry Pierson the other day. Since I was getting ready to present at a conference, I just now had time to read the article, and it is really good. If you have been confused in the past about the relationship
Posted by Nicholas Allen | 0 Comments
Filed under:

You Can't Fake Correlation

How do I construct callbacks to work over a load balancer without affinity? Let's construct a scenario to demonstrate this question. I have three machines; call them X, Y, and Z. X and Y are together behind a network load balancer. This is a server to

Transport Encryption and Signing

How do I control whether the transport signs and encrypts messages? This answer ties into the article I wrote a few weeks ago on describing channel security capabilities . If you don't remember about protection levels and security capabilities, then you

Actions for FaultExceptions

What should I set the action parameter to when creating a FaultException? There is indeed a pair of overloads for creating fault exceptions that take an action parameter, although most of the overloads lack this. public FaultException(TDetail detail,
Posted by Nicholas Allen | 2 Comments
Filed under: , , ,

Bindings for Workgroups

What's the fastest binding for securely communicating over an intranet? How about if the client and server don't share a domain? A lot of attention gets paid to Internet configurations, where HTTP rules the world. HTTP is so dominant in that environment

Reducing Memory Usage with Large Messages

I'm working on an application that processes many large messages at the same time. The messages should all fit into memory, but I'm running out of memory much sooner than expected. How do I reduce the overhead associated with each message? I'm only going
Posted by Nicholas Allen | 2 Comments
Filed under: , ,
 
Page view tracker