- On the default web site or the one which hosts your ESB Portal, enable windows authentication.
- Stop iis, w3wp.exe (World-wide web service)
- Run the following commands to enable credential negotiation:
cd “c:\inetpub\adminscripts”
cscript.exe adsutil.vbs set w3svc/NTAuthenticationProviders “Negotiate,NTLM” - Restart iis, w3wp.exe.
- To check this, open c:\windows\system32\inetsrv\metabase.xml and then search for NTAuth to see if it is just “NTLM” (which is the wrong value) or “Negotiate,NTLM” which is the correct value.
- To get the portal to work again, uninstall the management portal using the powershell script and then reinstall it. The script is found at C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\ESBSource\Source\Samples\Management Portal\Install\Scripts\Management_Install.cmd
Event Source: UDDIRuntime
Event Category: Config
[[Error reading configuration settings:
Unable to read the Database.WriterConnectionString or Database.NotificationConnectionString configuration setting.]]
- Open the UDDI management console.
- Right-click on the UDDI item in the treeview and click Properties…
- Go to the Security tab and choose “Windows integrated publisher authentication” rather than the mixed mode default setting of Windows integration and UDDI publisher authentication.
- Click OK. Here is a photo of the setting page:
- To check if the tModels exist on your UDDI server, open http://localhost/uddi, and click on the Publish tab. This will open a split frame page with a treeview on the left. If you do not see the microsoft-com:esb:runtimeresolution items, then you need to do step 2. Here is a picture of the tModels in the UDDI site:
2. Run the following command:
cd “c:\program files\microsoft biztalk esb toolkit 2.0\bin”
Microsoft.Practices.ESB.UDDIPublisher.exe”
3. This will install the ESB tmodels into UDDI. Hit refresh or do an iisreset and refresh the page to see the tModels.
Event Source: BizTalk ESB Toolkit 2.0
The HTTP request is unauthorized with client authentication scheme ‘Negotiate’. The authentication header received from the server was ‘NTLM,Basic realm=”localhost”‘.
Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response, WebException responseException, HttpChannelFactory factory)
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Practices.ESB.UDDI3.UDDI_Inquiry_PortType.get_bindingDetail(get_bindingDetailRequest request)
at Microsoft.Practices.ESB.UDDI3.UDDI_Inquiry_PortTypeClient.Microsoft.Practices.ESB.UDDI3.UDDI_Inquiry_PortType.get_bindingDetail(get_bindingDetailRequest request)
at Microsoft.Practices.ESB.UDDI3.UDDI_Inquiry_PortTypeClient.get_bindingDetail(get_bindingDetail get_bindingDetail1)
at Microsoft.Practices.ESB.UDDI3.UddiClient.GetBinding(String bindingKey)
at Microsoft.Practices.ESB.Resolver.UDDI3.ResolveProvider.<>c__DisplayClass4.<CreateSearch>b__0()
at Microsoft.Practices.ESB.Resolver.UDDI3.ResolveProvider.ResolveUddi(String config, String resolver, String keyPrefix, Dictionary`2 resolutionOrig)
at Microsoft.Practices.ESB.Resolver.UDDI3.ResolveProvider.Resolve(String config, String resolver, XmlDocument message)
at Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(ResolverInfo info, String message)
at Microsoft.Practices.ESB.Resolver.ResolverMgr.ResolveFromService(String config, String message)
at Microsoft.Practices.ESB.Resolver.ResolverMgr.ResolveEndpointWithCache(String config)
at Microsoft.Practices.ESB.Resolver.ResolverMgr.ResolveEndpointWithCache(Dictionary`2 resolverCache, Object resolverCacheSyncRoot, String config)
at ResolverService.Resolve(String configuration)
- Open ResolverService.svc’s web.config
- Set proxyCredentialType in config to Windows, new values shown below:
<transport clientCredentialType=”Windows” proxyCredentialType=”Windows” />
3. In the test client, modify the web.config transport security to use clientCredentialType of Windows and a proxyCredentialType of Windows, new values shown below:
<transport clientCredentialType=”Windows” proxyCredentialType=”Windows realm=”” />
This is tip is partially based on this blog post: http://www.kodyaz.com/blogs/software_development_blog/archive/2008/02/25/849.aspx
Thanks,