Plain-vanilla ASMX does not support WS-Security or any of the other WS-* extensions at all. In order to implement those, you need to use Microsoft's Web Services Enhancements (WSE).
WSE was a hold-over solution that Microsoft implemented in haste in order to satisfy the need for .NET Web Services to conform to the WS-* specifications. WCF is not just an upgrade to that, it is a flat-out replacement. Because of that, WSE (and subsequently ASMX, if you want to use the WS-* protocols) is officially an unsupported product.
So - does your management want to start a new project using an officially unsupported product?
Here are all of the things you won't get with WSE:
Technical support. Maybe someone on Stack Overflow can help you, but Microsoft can't.
Bug fixes. The Visual Studio integration of WSE 3.0 (the last released version) does not work in Visual Studio 2008. It also does not work in Visual Studio 2005 if you're running Vista x64, or Windows 7.
New features. WCF offers performance improvements, REST protocols, message queuing, binary serialization over TCP/Named Pipes, WCF Data Services (Linq over Web Services), and a whole host of new opportunities. You will never get any of these with WSE/ASMX.
Active Directory integration. Oh, sure, it "worked" in WSE using the kerberos assertion - very, very poorly. WCF is so easy to integrate with Active Directory that it's secured this way by default.
Fault contracts. Exception handling in WSE/ASMX is brutal, everything comes across the wire as a SoapException
or ResponseProcessingException
. With WCF, you can actually send back strong-typed exceptions (faults) back to the client.
Callback contracts. Want to start some long-running operation on the client side and be notified of completion/status updates from the server? Tough - hope you like writing polling loops.
Interoperability with new technologies. You can sometimes get a WSE 3 service to talk to a WCF or Java service, with some finagling, but not necessarily the other way around. And if you're using a version of WSE prior to 3.0, forget it. By contrast, WCF was able to support Azure and MSMQ with a few trivial configuration changes.
Starting a new project using ASMX/WSE is equivalent to starting a new project on the .NET 1.1 framework. Your product will be "legacy" before the first line of code is ever written.
If your management understands the term "legacy technology", and I suspect they do, you might want to throw that around a bit. Also "obsolete." Also "unsupported."
WCF has been around for, I think, 4 years now. That's more than enough time for any serious issues to be discovered in the wild. There is no reason whatsoever not to trust it as a technology.
And in fact, WSE 3 was released at the tail end of 2005, so it is not much older than WCF! It's illogical to trust a 5-year-old technology but not a 4-year-old technology - especially when support for the 5-year-old technology was discontinued 2 years ago.