WCF Deployment Challenge - Phase II deploy to IIS on local machine
I'm once again comparing the ASMX experience to the WCF experience. In this phase I'm simply going to deploy the Hello World type service to IIS on the local machine and compare the two. I'm using IIS 7 on Windows Vista SP1 for my test environment.
WCF Deployment
I had previously installed IIS on Vista by doing the minimum, just checking the IIS box and accepting the defaults. When I went to publish my site from VS2008 I click the "..." button and see that there is an option to publish to the local IIS. Unfortunately I have not installed enough options to make it work. I need the IIS 6 compatibility layer installed as well. This should take a few minutes....
I went to Control Panel / Turn Windows Features on or off and then I added ASP.NET and IIS 6 Metabase and Configuration Compatibility.
Ok - deployed but when I browse to it I get an 404.3 not found. IIS 7 is cool because it tells me more about why this request failed. I see that the request was handled by the StaticFile handler which means that it went to the wrong place. There must be more config to be done.
A quick search of MSDN for WCF and IIS turned up the just the article I needed to make this work. All I had to do was go into the Windows Features on off wizard again and find the .NET 3.0 components and turn on WCF Http activation.
ASMX Deployment
Well.. what can I say. This just worked. When I setup IIS on my machine I enabled ASP.NET which made ASMX just work. Another major obstacle to WCF adoption right there.
Conclusion
I have to give the deployment win to ASMX. Especially when it comes to hosted scenarios. If you go to any ASP.NET hosting provider you know your service will work. With WCF you need to check to be sure they have enabled HTTP activation. I'm not sure what the state of this is with Windows Server 2008 - I suspect it is better but I'll find out with the next challenge.
What do you think? If we want to make it better, easier and faster to deploy WCF what should we do?
How about this... When you go to deploy on a server have a tool that can interrogate the server to tell you if the deployment will work or not and what you have to do to make it work.
Comments
Anonymous
April 08, 2008
I really hope you take these challenges out to the extent of trying to deploy an WCF service to a public web server (IIS6) that runs on both http and https and also can be accessed from www.domain.com and domain.com. Then you will have something to take back to the team.Anonymous
April 13, 2008
Yes! Deployment to shared hosting is still difficult. Hay, what are we going to do about Doppler? There seems to be no activity at the moment. Are you still interested?