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

Advertisements

How do I: Install the UDDI services database components on a SQL2005 instance.

August 9, 2009

When installing UDDI services database components onto your SQL2005 instance you may receive this error:

The database instance does not meet the minumum version or service pack level requirements...

The database instance does not meet the minumum version or service pack level requirements...

This issue occurs because the UDDI installation process examines the value of the CSDVersion registry entry for SQL Server. The CSDVersion registry entry is used for SQL Server 2000 service packs. The CSDVersion registry entry is not used for SQL Server 2005. Therefore, this version check fails when you try to install the UDDI Services database components on an instance of SQL Server 2005.

To fix this you can follow the steps outline in this Microsoft Support document http://support.microsoft.com/kb/927230 or cut and paste the following script into a blank text document and save as a batch file.

@echo off
setlocal
if {%1}=={} goto defi
set ni=%1
set ni=%ni:”=%
set key=”HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\%ni%\MSSQLServer\CurrentVersion”
goto getver
:defi
set key=HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion
:getver
set cv=0.0
for /f “Tokens=2*” %%a in (‘reg query %key% /V CurrentVersion^|find /i “REG_SZ”‘) do (
set cv=%%b
)
@echo reg add %key% /V CSDVersion /T REG_SZ /F /D “%cv%”
reg add %key% /V CSDVersion /T REG_SZ /F /D “%cv%”
@echo After installing the UDDI Services database components, run the following command:
@echo reg delete %key% /V CSDVersion /F
endlocal

After running this batch file re-attempt your UDDI services installation and you will be able to install your UDDI services database components to your SQL2005 instance.