The authentication scheme "NTML" is not supported

The authentication scheme "NTML" is not supported

am 10.09.2007 19:52:08 von CHEN

I posted this in the WCF forum and didn't see any response. Re-posting
here to a wider audience to see if anyone else has seen similar
behavior...

Created a simple service in WCF and hosted it on my XP box in IIS
(5.1) which works as expected. I was interested in exposing the
endpoint to both WCF & non-WCF clients: i.e. the service is exposed
using both wsHttpBinding as well as basicHttpBinding.
When I tried to setup the same service on a W2k3 m/c and i get this
error. The stack trace is presented below:


Code Snippet[NotSupportedException: The authentication scheme 'NTML'
is not supported.]

System.ServiceModel.Activation.MetabaseSettingsIis.RemapAuth enticationSchemes(AuthFlags
flags, String[] providers) +241

System.ServiceModel.Activation.MetabaseSettingsIis.GetAuthen ticationSchemes(String
virtualPath) +25

System.ServiceModel.Channels.HttpChannelListener.ApplyHosted Context(VirtualPathExtension
virtualPathExtension, Boolean isMetadataListener) +33

System.ServiceModel.Activation.VirtualPathExtension.ApplyHos tedContext(TransportChannelListener
listener, BindingContext context) +4347180

System.ServiceModel.Channels.HttpTransportBindingElement.Bui ldChannelListener(BindingContext
context) +112

System.ServiceModel.Channels.BindingContext.BuildInnerChanne lListener()
+63

System.ServiceModel.Channels.DatagramChannelDemuxer`2..ctor( BindingContext
context) +84
System.ServiceModel.Channels.ChannelDemuxer.GetTypedDemuxer( Type
channelType, BindingContext context) +187

System.ServiceModel.Channels.ChannelDemuxer.BuildChannelList ener(BindingContext
context, ChannelDemuxerFilter filter) +56

System.ServiceModel.Channels.ChannelDemuxerBindingElement.Bu ildChannelListener(BindingContext
context) +178

System.ServiceModel.Channels.BindingContext.BuildInnerChanne lListener()
+63

System.ServiceModel.Channels.MessageEncodingBindingElement.I nternalBuildChannelListener(BindingContext
context) +67

System.ServiceModel.Channels.TextMessageEncodingBindingEleme nt.BuildChannelListener(BindingContext
context) +46

System.ServiceModel.Channels.BindingContext.BuildInnerChanne lListener()
+63
System.ServiceModel.Channels.ChannelBuilder.BuildChannelList ener()
+57

System.ServiceModel.Security.SecuritySessionServerSettings.C reateInnerChannelListener()
+334

System.ServiceModel.Channels.SecurityChannelListener`1.Initi alizeListener(ChannelBuilder
channelBuilder) +64

System.ServiceModel.Channels.SymmetricSecurityBindingElement .BuildChannelListenerCore(BindingContext
context) +2436

System.ServiceModel.Channels.SecurityBindingElement.BuildCha nnelListener(BindingContext
context) +206

System.ServiceModel.Channels.BindingContext.BuildInnerChanne lListener()
+63

System.ServiceModel.Channels.TransactionFlowBindingElement.B uildChannelListener(BindingContext
context) +178

System.ServiceModel.Channels.BindingContext.BuildInnerChanne lListener()
+63
System.ServiceModel.Channels.Binding.BuildChannelListener(Ur i
listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode
listenUriMode, BindingParameterCollection parameters) +125

System.ServiceModel.Description.DispatcherBuilder.MaybeCreat eListener(Boolean
actuallyCreate, Type[] supportedChannels, Binding binding,
BindingParameterCollection parameters, Uri listenUriBaseAddress,
String listenUriRelativeAddress, ListenUriMode listenUriMode,
ServiceThrottle throttle, IChannelListener& result) +4348670

System.ServiceModel.Description.DispatcherBuilder.BuildChann elListener(StuffPerListenUriInfo
stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode
listenUriMode, IChannelListener& result) +758

System.ServiceModel.Description.DispatcherBuilder.Initialize ServiceHost(ServiceDescription
description, ServiceHostBase serviceHost) +1240
System.ServiceModel.ServiceHostBase.InitializeRuntime() +37
System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +63
System.ServiceModel.Channels.CommunicationObject.Open(TimeSp an
timeout) +268
System.ServiceModel.Channels.CommunicationObject.Open() +30
System.ServiceModel.HostingManager.ActivateService(String
normalizedVirtualPath) +104
System.ServiceModel.HostingManager.EnsureServiceAvailable(St ring
normalizedVirtualPath) +445



Authentication scheme NTML??? [not a typo!]


..NET 3.0 was recently installed on this m/c & i've verified that the
installation is correct. In fact, if i host the service in a console
app, it behaves correctly. Only hosting in IIS 6.0 seems to be
exhibiting this symptom.

Spelunking using Reflector, it appears that the
MetabaseSettingsIis.cctor sets up the DefaultAuthProviders to be
"negotiate" & "ntlm". It appears as if NTLM is somehow clobbered to
become "NTML" causing the above exception to be thrown. Any IIS
settings that i should check that would affect this? Any ideas or
pointers please? I've been struggling with this for almost a week
now...

TIA,
chen