Search code examples
biztalkbiztalk-2010esb-toolkit-2.0

ESB Configuration Tool: The Specified Directory Service Attribute Or Value Does Not Exist


I'm trying to configure ESB Exception Management (ESB Toolkit 2.1) and after successfully creating the ESBExceptionDB I try to configure the Exception Web Services.

When I press Apply Configuration I get the error message "The Specified Directory Service Attribute Or Value Does Not Exist".

Error log:

EsbConfigurationTool.exe Error: 0 : An error has occurred: 
The specified directory service attribute or value does not exist.

Stack Trace:
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_SchemaEntry()
at System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(DirectoryEntry de)
at System.DirectoryServices.AccountManagement.ADStoreCtx..ctor(DirectoryEntry ctxBase,        Boolean ownCtxBase, String username, String password, ContextOptions options)
at   System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry (DirectoryEntry entry)
at  System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer( )
at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
at System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()
at   System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(Principal  Context context, Type principalType, Nullable`1 identityType, String identityValue,   DateTime refDate)
at  System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContex t context, Type principalType, String identityValue)
at System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue)
at EsbConfigurationTool.Panels.PanelBase.IsUserMemberOf(PrincipalContext context, String username, String groupName)
at EsbConfigurationTool.Panels.PanelBase.ValidateCredential(NetworkCredential credentials, String groupName)
at EsbConfigurationTool.Panels.WebServicesException.Save()
at EsbConfigurationTool.EsbConfiguration.OnTsBtnSaveClick(Object sender, EventArgs e)

What am I missing?


Solution

  • I ended up creating the applications in IIS manually and it seems to work.

    I created these application pools:

    • CoreESBAppPool Classic Pipeline and the user account you would specifiy in the configuration tool
    • CoreEsbNetworkAppPool Integrated pipeline NetworkService
    • CoreEsbOpsAppPool Integrated pipeline NetworkService
    • CoreEsbWcfAppPool Integrated pipeline user account
    • ExceptionESBAppPool Classic pipeline user account
    • ExceptionEsbWcfAppPool Integrated pipeline user account

    I then created the following applications

    • ESB.BizTalkOperationsService AppPool = CoreEsbOpsAppPool Physical path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.BizTalkOperationsService
    • ESB.ExceptionHandlingServices AppPool = ExceptionESBAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ExceptionHandlingServices
    • ESB.ExceptionHandlingServices.WCF AppPool = ExceptionEsbWcfAppPool Physical path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ExceptionHandlingServices.WCF
      • ESB.Exceptions.Service AppPool = ExceptionESBAppPool Physical path = C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.Exceptions.Service\ESB.Exceptions.Service
    • ESB.ItineraryServices AppPool = CoreESBAppPool Physical path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ItineraryServices
    • ESB.ItineraryServices.Generic.Response.WCF AppPool = CoreEsbWcfAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ItineraryServices.Generic.Response.WCF
    • ESB.ItineraryServices.Generic.WCF AppPool = CoreEsbWcfAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ItineraryServices.Generic.WCF
    • ESB.ItineraryServices.Response AppPool = CoreESBAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ItineraryServices.Response
    • ESB.ItineraryServices.Response.WCF AppPool = CoreEsbWcfAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ItineraryServices.Response.WCF
    • ESB.ItineraryServices.WCF AppPool = CoreEsbWcfAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ItineraryServices.WCF
    • ESB.ResolverServices AppPool = CoreEsbNetworkAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ResolverServices
    • ESB.ResolverServices.WCF AppPool = CoreEsbWcfAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ResolverServices.WCF
    • ESB.TransformServices AppPool = CoreESBAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.TransformServices
    • ESB.TransformServices.WCF AppPool = CoreEsbWcfAppPool Physical Path = C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.1\Web\ESB.ResolverServices.WCF

    And then I disabled anonymous authentication for ESB.BizTalkOperationsService and enabled ASP.NET Impersonation and Windows Authentication.