Tuesday 4 November 2008

Azure: Development Fabric Service EndPoints

So I've been messing with Windows Azure, been having a lot of fun playing.

One of the interesting things that I have been looking at is the Service Definition File.

Cloud Service Project

So if you create a cloud service in Visual Studio 2008, it will automatically create a project which contains a Service Configuration file (ServiceConfiguration.cscfg) and a Service Definition File (ServiceDefinition.csdef).  These files are used to configure the service in the cloud

ServiceDefinition.csdef

So I've attached a copy of my Service Definition file for my ASP.NET Project which I have deployed to the cloud.

The key thing here, is that in my local development fabric, I can modify the ports to whatever port I chose.  This is helpful if I am testing multiple services on my local machine.

When deployed to the Fabric in the Cloud, I must use port 80 for http and for https I must use port 443 in the cloud.

I can also have multiple endpoints listening but however I can only have one input endpoint per protocol.

So I can have one endpoint for http and one for https, but not 2 for http.

Within the development fabric, as said before I can set the port to whatever i choose, however if that port isn't available it will find and use the next available port.  So for example if I try to use port 10000 (which is used by the Development Storage), it will find the next available port (10002 in my case).

So be careful, and check that you are using the port you are expecting to use on your development fabric

<ServiceDefinition name="HelloWorldWeb" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<
WebRole name="WebRole">
<
InputEndpoints>
<!--
Must use port 80 for http and port 443 for https when running in the cloud -->
<
InputEndpoint name="HttpIn" protocol="http" port="80" />
</
InputEndpoints>
</
WebRole>
</
ServiceDefinition>

No comments: