Archive for June, 2007

Changing the identifier of a website in IIS

22 June, 2007

Whilst writing build scripts for our BizTalk environment, I recently had to change the identifier of a website in IIS to match the values on several other servers. After a bit of digging around it turns out the command is quite simple.

One option is to use the very useful tool Metabase explorer in the IIS 6.0 resource kit. Be careful when changing the ID that you change any other properties that contain this id (such as AppRoot). I thoroughly recommend having a look at this download, as it contains a good few other very useful tools for developers.

Alternatively you can do this directly using the admin scripts. Make sure you stop the website or you’ll get errors in the event log. The command is:

cscript adsutil.vbs move w3svc/2 w3svc/3

Where 2 and 3 are the from and to ids respectively. adsutil.vbs can be found in \Inetpub\AdminScripts on your system drive.

‘Lost’ messages from non-transactional called orchestration

4 June, 2007

I encountered a strange issue today which had me stumped – messages I was sending from an orchestration were never getting picked up and processed by subscriptions, but neither were they suspending or generating any error messages at all. It’s as if they were falling into a black hole never to be seen again!

The scenario, which you can test yourself, was that I had two orchestrations (A and B). A calls B, B sends a message to the message box, then A sends a message to the message box. B’s message was ‘disappearing’. Tthe HAT tool would show that it had been processed successfuly, and even more strangely if I put a suspend shape

The answer was of course transactions. A was a long-running transactional orchestration, whereas B was marked for no transaction. Switching B to be transactional solved the problem.

I could reason about why this might be the case, and in a strange way it does make some kind of sense, but needless to say this is a counter-intuitive and rather annoying behaviour! I would expect actions taken in orchestration B to join in with the transaction of the calling orchestration, rather than disappearing entirely!