While wrapping up my demos for my presentation “Moving WF applications to Azure”, I decided to repackage my demos using Windows Azure Accelerator to conserve the number of Web Roles I was using in Azure.
A quick summary of the issue is as follows:
- Create a Windows Azure Accelerator project, and upload it to Azure (Steps performed according to instructions provided by WAA)
- From the base address (i.e. <application>.cloudapp.net), create a IIS Site name. I just typed a random, non-active hostname for the Hostname, as I was intending to use the test link instead.
- Create a Windows WF 4.0 project, and browse to it. The generated screen with a link to the WSDL is displayed.
- Publish the WF Application to the IIS web site. It doesn’t matter if the deployment is marked as an IIS application.
- Browse to the test site where a page showing that metadata publishing is disabled. (i.e the /test/testwf/ location, rather than from the host name)
- No amount of web.config changes will enable the metadata publishing, such as an example below.
Logging onto the Azure Web Role instance revealed the following IIS setup.
I’m guessing that the test sites use URL Rewrite, but somehow the web.config is not picked up.
What finally worked for me is as follows:
- Get a DNS Alias (CNAME) to point to my base cloud application, e.g. using a free domain name from no-ip.com.
- Reconfigure WAA to accept the new Host Name
- Browse to the WF Service using the Site address instead of the test site address, and voila, the no configuration setup now works.
I hope this helps someone save a couple of hours of sleep. Now onto figuring out Azure Composite Applications.
My presentation "Moving WF Applications to Azure" to the Azure User Group Singapore (AzureUG.sg) on 29th Nov 2011 covered the following topics:
– What is Window Workflow Foundation?
– What are the features, and how does one implement them?
– Why is it relevant to applications moving into Azure?
– What are my migration / development options for using WF in Azure?
Slides have been uploaded to Slideshare: http://goo.gl/sz4IP
Demo codes have been uploaded to Azure Storage
– WFSoln: http://goo.gl/Fmsc9
– AzureWFSoln: http://goo.gl/9OXo4
[Updated] Migrations using Windows Azure Accelerator for Web Roles has been resolved. Please take a look at https://studiohub.wordpress.com/2011/12/02/migrating-wf-application-to-azure-via-windows-azure-accelerator-for-web-roles/
The Windows Azure Team has released a security refresh for the v1.3 SDK aimed to fix the issue where by the client to determine the content of the state information passed by the web role.
If you have downloaded the V1.3 SDK prior to 3 Feb 2011, perform the quick check to see if you need to have it patched.
Control Panel > Programs > Programs and Features
Scroll to Windows Azure SDK and note the version number. Anything less than 1.3.20121.1237 means that your web role(s) may be vulnerable.
Download the patch files from Microsoft (links below), and install in. Zip through the various EULA and install options. You may be prompted to shut down some services for the patch to go through.
Verify that the installation was successful (or you already have a patch SDK)
Full details and patch links available directly from Microsoft: http://blogs.msdn.com/b/windowsazure/archive/2011/02/03/windows-azure-software-development-kit-sdk-refresh-released.aspx
Posted in Window Azure
No. Static class variables behave as they should, with it’s value shared only within the instance it is instantiated in. Thus, static variables should not be used to synchronise or provide locks between role instances.
To confirm this behaviour, I created a simple web role with a button that sets a static class variable. A timer periodically triggers to attempt to retrieve the variable to displays it. The web role then deployed with at least 2 or more instances.
From the screen below, we can see that each web role instance read a different GUID value from the GUID static class variable.
However, access to the same web role instance read back the same GUID value.
Hit the link below for the source files if you want to test it out.
Hope this is remotely useful for some other Azure beginner like me .
Posted in C#, Window Azure