WCF service performance problems with burst load

by Scott Miller on December 5, 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 ->

{

Continue Reading 0 comments }.NET

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.

image

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

image

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.

image

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.

{

Continue Reading 0 comments }.NET

Review of User Interface Prototyping Tools

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 ->

{

Continue Reading 0 comments }User Experience

We have a satellite imagery group that is responsible for analyzing imagery of nuclear sites.   They were looking for ways to allow their data to be used by others who are not spatial imagery experts.   The data included raster data(Satellite imagery), vector data (Shapefiles), and photos and documents.  They were interested in using publicly available imagery data(e.g. Google earth, Bing Maps)  and integrated all this into a single application.

I did a prototype using Microsoft Silverlight and the Bing Maps Silverlight Control.   The requirements for this prototype were:

  • Quickly navigate to nuclear sites
  • Show pictures and documents for that nuclear site
  • Overlay our internal satellite data and vector data for the site 
  • Integrate a spatial search capability

The prototype was done in 3 weeks.  The primary purpose was to present to potential funding sources. I had already done projects with Windows Presentation Foundation so learning Silverlight was straightforward.  The difficulty in using Silverlight is knowing what was missing. 

Six usability tests(nuclear inspector persona) were done and that feedback plus the feedback from the satellite imagery group was used to update the design.

I had to remove the satellite imagery layers due to license restrictions, but you can view the demo without those layers.

Click here to view the demo… 

Or you can view 6 screen shots below

Navigate to a nuclear site Navigate to a nuclear site 

Choose a country.  Map zooms to country. 
Choose a site.  Map zooms to site and the site icon and the layer panel appear for that site.

Read the full article ->

{

Continue Reading 2 comments }.NET

Logitech SqueezeBox with Windows Home Server

by Scott Miller on August 22, 2009

Duet Hero 500

Recently I purchased a Logitech Squeezebox Duet to allow me to wirelessly stream music from my Windows Home Server.  I ran into a number of problems, so I decided to document the steps I took to get this working.

Steps Overview:

  1. Verify your  wireless connection can stream music(optional)
  2. Upgrade your Windows Home Server hardware(optional)
  3. Setup the SqueezeCenter software on your Windows Home Server

Read the full article ->

{

Continue Reading 7 comments }Gadgets

Austria Bankomat ATM Hack

by Scott Miller on August 12, 2009

I live in Vienna Austria and here we use a payment system called Bankomat.  Some machines were found with a cover over them that allowed criminals to get your card security details to either steal money from your account or make purchases.

The cover looked like the original and did not interfere with the purchases.  Some people did report that their cards had to be inserted farther into the machine and they were difficult to remove, but otherwise you would not notice

Bankomat ATM CoverBankomat ATM Cover Back

How did it work?  As the card was inserted it would record the magnetic strip details.   When the PIN was typed it would be recorded while at the same time allow the original keys to be pressed.  The cover was later collected and the information was used to steal money from your account.

{

Continue Reading 0 comments }Security