ESBG 1.0 install error & the UDDI publisher utility

August 9, 2009

As part of the ESBG 1.0 installation process you are required to publish the required UDDI entries to your UDDI data store. When I first ran this utility (Microsoft.Practices.ESB.UDDIPublisher.exe) as part of the “1.Install_Prerequisites.cmd” script as outlined in the ESBG 1.0 installation instructions, I received the following error:

Creating entries…
– adding Default Category for ESB Runtime Resolution
Error creating UDDI entries… Error 285014: An unexpected error occurred retrie
ving the Category Key for the TModel name, ‘System.ServiceModel.Security.Message
SecurityException: The HTTP request is unauthorized with client authentication s
cheme ‘Negotiate’. The authentication header received from the server was ‘NTLM,
Basic realm=”localhost”‘. —> System.Net.WebException: The remote server return
ed an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpCha
nnelRequest.WaitForReply(TimeSpan timeout)
— End of inner exception stack trace —
Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(H
ttpWebRequest request, HttpWebResponse response, WebException responseException,
HttpChannelFactory factory)
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResp
onse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factor
y, WebException responseException)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpCha
nnelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeS
pan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message messag
e, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean on
eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan tim
eout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean on
eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCall
Message methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at 0:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
Msg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
at Inquire.findtModel(findtModelRequest request)
at InquireClient.Inquire.findtModel(findtModelRequest request)
at InquireClient.findtModel(findtModel find_tModel1)
at Microsoft.Practices.ESB.UDDI.UddiClient.GetCategoryByName(String tModelNam
e)’.
.

My initial search for a solution led me to this patch for .NET Framework 2.0:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=6003

Unfortunately this did not work.

The solution to this issues was to enable kerberos authentication in IIS by running the following line from your command prompt:

cscript C:\Inetpub\Adminscripts\adsutil.vbs set w3svc/1/NTAuthenticationProviders “Negotiate,NTLM”

More information can be found here:
http://support.microsoft.com/kb/215383