10

I've been trying to create a stable web service application for the last 2-3 months. about 2 months ago I made the choice to move over to WCF to take advantage of the single instanced web services.

Since making that move I've had some real headaches deploying to IIS 6 scenarios. Unfortunately because most real clients still use Windows Server 2003 and IIS 6. I've been getting every WCF error you can possibly imagine.

Client patience is wearing thin and soon it will look like we are unable to deliver a reliable solution.

I am almost decided to move back to ASMX services that at least worked, and didn't suffer from stuff like :

The sequence has been terminated by the remote endpoint. The user specified maximum retry count for a particular message has been exceeded. Because of this the reliable session cannot continue. The reliable session was faulted.

The communication object, System.ServiceModel.Channels.ReplyChannel, cannot be used for communication because it has been Aborted

The list goes on... before I make the move back to ASMX, are there any compelling reasons to stick with WCF, because at this rate we could loose large clients over this technology?

bkaid
  • 51,465
  • 22
  • 112
  • 128
JL.
  • 78,954
  • 126
  • 311
  • 459
  • try self-hosting an ASMX webservice - try connecting to a MSMQ message queue - try using TCP/IP instead of HTTP - good luck! – marc_s Mar 06 '10 at 21:11
  • 1
    The thing is - I'm not having a go at WCF, clearly the designers intended clients to use IIS7, because in IIS7 it works like a bomb! But I just don't think its really geared for IIS6 hosting. – JL. Mar 06 '10 at 21:13
  • @Marc s, I don't want to do any of those things for this implementation I am working on. Primarily I want to release a piece of software that works in a predictable way. – JL. Mar 06 '10 at 21:15
  • @JL: "works in predictable way" and then you're hosting in IIS6 ?? :-) It might recycle the app pool your WCF service lives in at any moment.... that's not predictable to me .... – marc_s Mar 06 '10 at 21:18
  • 2
    But seriously: if you want to have a predictable behavior on Win2003 Server - why don't you self-host your WCF services?? That performs even better and even more smoothly than IIS7 - seriously! – marc_s Mar 06 '10 at 21:19
  • @Marc , should have mentioned somewhere that due to marketing the product as an "IIS" App, unfortunately "Business" have pretty much decided to not allow self hosting. Even though this would be the obvious suggestion. – JL. Mar 06 '10 at 21:20
  • @JL Business stinks and is ignorant... Greetings from Dilbert land.... – marc_s Mar 06 '10 at 21:23
  • Yup - off topic, but when I made the suggestion to self host, they had a 4 hour meeting and determined they were, and I quote - "adding more value to the overall solution using IIS". – JL. Mar 06 '10 at 21:28
  • @JL: ROTFLMAO !! :-) 4 hours to basically decide they're totally ignorant..... good one..... I feel for you, man! – marc_s Mar 06 '10 at 21:56
  • 1
    @Marc - ok so I may just be a tekkie, but come on man, trust us guys we're around computers and can end up saving huge time and money. – JL. Mar 07 '10 at 00:04

2 Answers2

7

Because, eventually, sites will move to IIS7?

Seriously, if WCF was built for IIS7 seems to work better under IIS7 and you have no problems using WCF with IIS7, then the choice sounds pretty simple. Stick with WCF only if the client has IIS7. Otherwise, use "older" technology with "older" technology.

Michael Todd
  • 16,679
  • 4
  • 49
  • 69
  • Accepted answer. From 1 developer to the next, avoid hosting WCF in IIS6 if you have strict deadlines and are budgeting your man days. – JL. Mar 06 '10 at 21:32
  • In .NET 4 WCF configuration has been significantly improved. WCF 4 + IIS 7 will practically work without a web.config at all. – Josh Mar 06 '10 at 22:24
  • Can't wait for it, problem is in the corporate world in Eastern Europe clients still insist on using Windows 2003 server. Upgrading a .net version is approachable, asking clients to upgrade the OS, not so easy. IIS7 on Windows 2003 Server, now that would be practical. – JL. Mar 07 '10 at 00:00
  • I disagree with the premise that WCF was built for IIS7 – Cheeso Mar 07 '10 at 14:37
  • @Cheeso I don't know enough about it to _really_ answer that statement, but it would appear that someone who is actually _using_ it has no problems under IIS7 but does have problems under IIS6. It's certain that WCF was _not_ made strictly for IIS7 since it works under IIS6, but it appears that it is much easier to use it for IIS7 than IIS6. – Michael Todd Mar 07 '10 at 16:42
  • @Cheeso, I'm pretty sure IIS6 is not the way to go. I'm also hoping the WCF 3.5 implementation gets quickly forgotten and replaced by v4 of the framework. – JL. Mar 07 '10 at 16:44
  • I am not asserting that IIS6 is "the way to go." I think that IIS7 is a big step up in performance, reliability and manageability for IIS. Also it's been out for more than 2 years now; people should move to IIS7. I just don't think you can say, *WCF was built for IIS7*. – Cheeso Mar 07 '10 at 17:37
0

Ok the move back to asmx is done. I must say I am already a lot less stressed out.

First thing I noticed was that the whole setup was a lot less pain free. At one stage I was thinking - "Ok now need to configure the client end", but then I thought "Hang on - nothing to configure!"

I then had 1 timeout issue, and couldn't figure out where to set the timeout value in config, then I remembered "Hell its as easy as setting Service.Timeout = -1" in the code.

Long live asmx. You don't need a Boeing 747 to get you across the park!

Finally disclaimer: I've implemented a service that could take anything from 1 hour to 12 hours to run. If I had a service that was pumping out small bits of data to multiple clients at once I think I would have been ok with WCF.

JL.
  • 78,954
  • 126
  • 311
  • 459
  • 3
    "Long live ASMX"? You know it's already dead, right? Only critical bugs being fixed, clearly documented by Microsoft as a "legacy technology"? Make sure your business people don't read this post! – John Saunders Mar 07 '10 at 00:13
  • @John - Yes sir! And btw - thank you for your outstanding answers so far on my other questions here and there! Really has helped me out a lot when in a fix! – JL. Mar 07 '10 at 01:25