by Scott Miller on December 6, 2011
If your WCF services:
- Use synchronous calls
- Have long processing times(>2 seconds)
- Experience burst loads of request
and you are having performance problems….read on.
A potential cause is the way threads are allocated in Internet Information Server. For each call a thread is held during service processing. As more load is applied Internet Information Server does not have enough threads to service the incoming requests and the service has to wait until a thread is release or a new one is created. The fix to this problem is to
- Modify the .NET processModel machine.config settings to increase the initial IIS thread count
- Add a ServiceBehavior attribute to the long running WCF services to effectively use those threads
- Increase the ServiceThrottling web.config setting to allow more calls to be processed at the same time
Dustin Metzgar has a great article that is the basis for this post.
Read the full article ->
{
by Scott Miller on December 5, 2011
If your WCF services:
- Use synchronous calls
- Have long processing times(>2 seconds)
- Are stateless
- Experience burst loads of request
You might be experience performance problems. One area to look is the way threads are allocated in Internet Information Server. For each call the service holds onto the thread while processing. As more load is applied Internet Information Server does not have enough threads to service the requests. The solution is to
- Modify the .NET processModel settings to increase the initial IIS thread count
- Add a ServiceBehavior attribute to the long running WCF services to effectively use those threads
- Increase the ServiceThrottling to allow more service instances and calls to be processed at the same time
Dustin Metzgar has a great article that is the basis for this post.
Read the full article ->
{
by Scott Miller on January 6, 2011
One of the great new features in .NET 4.0 is the simplified configuration for Windows Communication Foundation. Someone new to WCF can get started without having to know the details of what to put in the configuration file for a WCF service.
However, by default the metadata for a deployed service will not be accessible. During development I often want to expose the metadata or WSDL for a particular service. I use this as a quick way to test my service and to verify there are no settings that are incorrect.
In .NET 3.5 I was required to have setting in my configuration for the binding, endpoint and behavior on each of my services. The example below shows a configuration file setting that specifies the binding, endpoint and includes a behavior that exposes the metadata for a single service.

In .NET 4.0 you now have simplified configuration. For a service you do not need anything in the servicemodel.

However, when I try to access the metadata I get a error message . What I need is a default behavior that will expose the metadata and have that behavior applied to all my services. The below example shows how to do this.

Since the behavior has no name it is assumed to be the default. With this change the metadata will be available.
For more information on simplified configuration and the other WCF 4.0 improvement see The Developers Introduction to Windows Communication 4 on MSDN.
{
by Scott Miller on January 2, 2011
User interface prototyping is a simple and effective way for designing, testing and refining a user interface. The early prototypes we design are deliberately rough and incomplete. These are often called low-fidelity prototypes or wireframes.
What I like about low-fidelity prototyping:
- Designs can be created quickly
- You get user-interface feedback early in the development process
- Since you are earlier in the development process changes are easier and less costly to make
- It brings people together for a shared understanding of the product
- Different designs ideas can be discussed, tried out, and refined
- User are more likely to provide feedback on low-fidelity designs
- Technical feasibility of the design can be discussed and prototyped
Some of the tools we use to create low-fidelity prototypes are Paper, GUIMags and Balsamiq.
Read the full article ->
{
by Scott Miller on January 2, 2011
User interface prototyping is a simple and effective way for designing, testing and refining a user interface. The early prototypes we design are deliberately rough and incomplete. These are often called low-fidelity prototypes or wireframes.
What I like about low-fidelity prototyping:
- Designs can be created quickly
- You get user-interface feedback early in the development process
- Since you are earlier in the development process changes are easier and less costly to make
- It brings people together for a shared understanding of the product
- Different designs ideas can be discussed, tried out, and refined
- User are more likely to provide feedback on low-fidelity designs
- Technical feasibility of the design can be discussed and prototyped
- Some of the tools we use to create low-fidelity prototypes are Paper, GUIMags and Balsamiq.
Read the full article ->
{