ESB Toolkit Management Portal Installation Notes (From the field)


ESB Toolkit Management Portal Installation Notes (From the field)

A co-worker: Leandro Diaz-Guerra ( http://www.leandrodg.com.ar/blog/ ) had the task of installing the ESB Portal on a staging environment server. These are his notes on the topic for both 32 bit and 64bit versions of the install. (Leandro, you took too long for posting this… so I did it for you🙂

  1. On a development environment, with MS Visual Studio 2008 installed:

    1. Install ESB Toolkit 2.0 ( http://www.microsoft.com/downloads/details.aspx?FamilyID=BC86CF1E-EF29-4B19-95F7-388F64555090&displaylang=en&displaylang=en ).

  1. Install Enterprise Library 4.1 ( http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en )

  1. Install Microsoft Chart Controls for Microsoft .NET Framework 3.5 ( http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en )

  1. ExtractESBSource.zip(found in theProgram Files\Microsoft BizTalk ESB Toolkit 2.0folder) to a new folder.

  1. Inside this folder, go to the Keys folder and create aMicrosoft.Practices.ESB.snkfile, by following the instructions in theReadme.txtfile.

  1. Go to theSource\Samples\Management Portal\ESB.Portalfolder and open theESB.Portal.slnsolution file.

  1. Select Debug/Release in the solution configuration to choose the type of installation file to build.

  1. Right click on the ESB.Portal.Setup project, and click on Rebuild.

  1. Go to theSource\Samples\Management Portal\ESB.Portal.Setup\DebugorSource\Samples\Management Portal\ESB.Portal.Setup\Releaseand copy theESB.Portal.msiandSetup.exethat were just created to the computer where you want to install it.

  1. On your server (with Windows 2003 or 2008) or on a development environment:

    1. You need to install Windows 2003/2008 SDK in case you don’t have Visual Studio installed (to get gacutil.exe file installed).

  1. Install the ESB Toolkit package by following the instructions in the ESB Toolkit documentation.

  1. After this, you need to install the 3 prerequisite sample applications from the ESB Toolkit source code, this is different if you are installing in a 32-bit OS or in a 64-bit OS.

    1. In a 32-bit Environment:

      1. If running Windows Server 2008:

        1. OpenSource\Install\Scripts\ESBFunctions.ps1and find the following text:

if ($SDKPath -eq $null)

{

$SDKPath=(Get-ItemProperty “hklm:SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A”).InstallationFolder

}

  1. Add the following text after that line (to allow the script to find thegacutil.exefile in the Windows Server 2008 SDK directory):

if ($SDKPath -eq $null)

{

$SDKPath=(Get-ItemProperty “hklm:SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.1”).InstallationFolder

}

  1. Open up a Command Prompt (Start Menu => Accessories => Command Prompt, run it as administrator)

  1. Run the following command:
    Powershell Set-ExecutionPolicy unrestricted

  1. In the same command prompt, go to theSource\Samples\DynamicResolution\Install\Scriptsfolder.

  1. Run the following command and type in the required credentials:

Setup_bin.cmd

  1. In the same command prompt, go to theSource\Samples\Itinerary\Install\Scriptsfolder.

  1. Run the following command:

Setup_bin.cmd

  1. In the same command prompt, go to theSource\Samples\MultipleWebServices\Install\Scriptsfolder.

  1. Run the following command:

Setup_bin.cmd

  1. In a 64-bit environment:

    1. If running Windows Server 2008:

      1. OpenSource\Install\Scripts\ESBFunctions.ps1and find the following text:

if ($SDKPath -eq $null)

{

$SDKPath=(Get-ItemProperty “hklm:SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v6.0A”).InstallationFolder

}

  1. Add the following text after that line (to allow the script to find thegacutil.exefile in the Windows Server 2008 SDK directory):

if ($SDKPath -eq $null)

{

$SDKPath=(Get-ItemProperty “hklm:SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v6.1”).InstallationFolder

}

  1. All the powershell scripts must run in 32-bit mode, asMicrosoft.Biztalk.ExplorerOMcannot be run in a 64-bit process.

    1. To enable this, you need to open the following powershell scripts one by one:

  • Source\Samples\DynamicResolution\Install\Scripts\DynamicResolution_Install.ps1

  • Source\Samples\DynamicResolution\Install\Scripts\DynamicResolution_Uninstall.ps1

  • Source\Samples\Itinerary\Install\Scripts\Itinerary_Install.ps1

  • Source\Samples\ Itinerary \Install\Scripts\Itinerary_Install.ps1

  • Source\Samples\MultipleWebServices\Install\Scripts\MultipleWebServices _Install.ps1

  • Source\Samples\MultipleWebServices\Install\Scripts\MultipleWebServices _Install.ps1

  1. And include the following code at top of the files:

if ($env:Processor_Architecture -ne “x86”)

{

write-warning “Running x86 PowerShell…”

&”$env:windir\syswow64\windowspowershell\v1.0\powershell.exe” $myinvocation.Line

exit

}

  1. OpenSource\Samples\DynamicResolution\Install\Scripts\DynamicResolution_Install.ps1

  1. Open up a Command Prompt (Start Menu => Accessories => Command Prompt, run it as administrator)

  1. Run the following command:
    %windir%\syswow64\windowspowershell\v1.0\powershell.exe Set-ExecutionPolicy unrestricted

  1. In the same command prompt, go to theSource\Samples\DynamicResolution\Install\Scriptsfolder.

  1. Run the following command and type in the required credentials:

Setup_bin.cmd

  1. In the same command prompt, go to theSource\Samples\Itinerary\Install\Scriptsfolder.

  1. Run the following command:

Setup_bin.cmd

  1. In the same command prompt, go to theSource\Samples\MultipleWebServices\Install\Scriptsfolder.

  1. Run the following command:

Setup_bin.cmd

  1. Open Internet Information Services Manager and create a new application pool, namedEsbPortalNetworkAppPooland configure it to run underNetwork Serviceaccount.

  1. OpenSource\Samples\Management Portal\SQL\ESB.Administration.Database.sqlin SQL Server Management Studio, and connect to the Biztalk Database Server.

    1. If your Biztalk user groups have custom names, then you need to change them inside this file, find and replaceBizTalk Application UsersandBizTalk Server Administratorswith the custom names.

    2. Now run that script in the server, and theESBAdmindatabase will be deployed.

  1. Run thesetup.exefile you previously built and when asked for the Application Pool, select theEsbPortalNetworkAppPoolone. This will create all the required virtual directories for the ESB Management Portal in the website you chose.

  1. Go to the website directory (for Default Website, go toc:\inetpub\wwwroot), and find theESB.Portalfolder. Open theweb.configfile and do the following:

    1. Modify theAdminDatabaseServerconnection string to point to the right database.

    2. Uncomment and modify theEsbExceptionDbconnection string to point to the right database.

    3. Remove or changenetwork driverpart of the connection strings if you don’t intend to connect to the databases through TCP/IP.

    4. Again, if your Biztalk user groups have custom names, then you need to change them inside this file, find and replaceBizTalk Application UsersandBizTalk Server Administratorswith the custom names in theauthorizationnode.

  1. Now find theweb.configfor theESB.Exceptions.Serviceand theESB.BAM.Serviceapplications and do the same connection string modifications.

  1. In Internet Information Services Manager, go to the Authentication configuration for all the 3 applications (ESB.Portal,ESB.Exceptions.ServiceandESB.BAM.Service), disableAnonymous Authenticationand enableWindows Authentication.

  1. Now we need to run through a try-error sequence, we’ll try to access the Management Portal application and we’ll probably get many different errors in the Event Log, I’ll now list a solution for all the errors I ran into.

  1. If you get a “Could not load file or assembly ‘ESB.Exceptions.Service.Implementation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.” error:

  • Copy theESB.Exceptions.Service.Implementation.dllfrom theESB.Exceptions.Service/binfolder to theESB.Portal/binfolder.

  1. If you get a “401: Unauthorized” error:

  • Edit theweb.configforESB.Portaland replace<transport clientCredentialType=”Windows” />with<transport clientCredentialType=”Ntlm” />in thesystem.serviceModel/bindings/webHttpBindingnode.

  1. If you get a “404: Not Found” error, it ‘s because by default there is no script map for .svc file with default IIS 7.0 installation, so you need to register .svc extension in IIS:

  • You need to update IIS script maps to register .svc extension In a command prompt (ran as administrator), execute the following command:

“%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe” -r -y

  1. If you get a “NotSupportedException (Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.)” error:

  • Edit theweb.configforESB.Exceptions.Serviceand replace<transport clientCredentialType=”Windows” />with<transport clientCredentialType=”Ntlm” />in thesystem.serviceModel/bindings/webHttpBindingnode.

  1. If you get a “400: Bad Request” error:

  • Open SQL Management studio, connect to the Biztalk database server and run the following script, to give correct permissions toESBPortalandESBPortalAdminroles:

USEEsbExceptionDb
GO
GRANTSELECTON[dbo].[Alert]TO[ESBPortal]
GO
GRANTSELECTON[dbo].[Alert]TO[ESBPortalAdmin]
GO
GRANTSELECT,INSERT,UPDATE,DELETEON[dbo].[AlertCondition]TO[ESBPortal]
GO
GRANTSELECT,INSERT,UPDATE,DELETEON[dbo].[AlertCondition]TO[ESBPortalAdmin]
GO
GRANTSELECT,INSERT,UPDATE,DELETEON[dbo].[AlertSubscription]TO[ESBPortal]
GO
GRANTSELECT,INSERT,UPDATE,DELETEON[dbo].[AlertSubscription]TO[ESBPortalAdmin]
GO
GRANTSELECT,INSERT,UPDATEON[dbo].[Configuration]TO[ESBPortal]
GO
GRANTSELECT,INSERT,UPDATEON[dbo].[Configuration]TO[ESBPortalAdmin]
GO
GRANTSELECT,INSERT,UPDATEON[dbo].[UserSetting]TO[ESBPortal]
GO
GRANTSELECT,INSERT,UPDATEON[dbo].[UserSetting]TO[ESBPortalAdmin]
GO
GRANTSELECTON[dbo].[vw_AggregatedFaults]TO[ESBPortal]
GO
GRANTSELECTON[dbo].[vw_AggregatedFaults]TO[ESBPortalAdmin]
GO
GRANTEXECUTEON[dbo].[usp_select_Fault_Count_Over_Time_By_Application]TO[ESBPortal]
GO
GRANTEXECUTEON[dbo].[usp_select_Fault_Count_Over_Time_By_Application]TO[ESBPortalAdmin]
GO
GRANTEXECUTEON[dbo].[usp_select_Fault_Count_Over_Time_By_Application_ServiceName]TO[ESBPortal]
GO
GRANTEXECUTEON[dbo].[usp_select_Fault_Count_Over_Time_By_Application_ServiceName]TO[ESBPortalAdmin]
GO
GRANTEXECUTEON[dbo].[usp_select_Resubmission_Count_Over_Time_By_Application]TO[ESBPortal]
GO
GRANTEXECUTEON[dbo].[usp_select_Resubmission_Count_Over_Time_By_Application]TO[ESBPortalAdmin]
GO
GRANTEXECUTEON[dbo].[usp_select_AlertSubscription_Count_Over_Time_By_Application]TO[ESBPortal]
GO
GRANTEXECUTEON[dbo].[usp_select_AlertSubscription_Count_Over_Time_By_Application]TO[ESBPortalAdmin]
GO
GRANTEXECUTEON[dbo].[usp_select_AlertSubscription_Count_Over_Time_By_Application_ServiceName]TO[ESBPortal]
GO
GRANTEXECUTEON[dbo].[usp_select_AlertSubscription_Count_Over_Time_By_Application_ServiceName]TO[ESBPortalAdmin]
GO
GRANTEXECUTEON[dbo].[usp_select_Resubmission_Count_Over_Time_By_Application_ServiceName]TO[ESBPortal]
GO
GRANTEXECUTEON[dbo].[usp_select_Resubmission_Count_Over_Time_By_Application_ServiceName]TO[ESBPortalAdmin]
GO

  1. If you still get a “400: Bad Request” error trying to read a message details inMessageViewer.aspx:

  • You need to configure IIS to support the Negotiate authentication provider:

    • You’ll need to open a command prompt (in administrator mode) and run the following command, replacing 1 (the Id for Default Website) with the correct website Id (you can find this by opening the Internet Information Services Manager, clicking on the Sites node will list all websites with their Id’s):

cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/1/NTAuthenticationProviders “Negotiate,NTLM”

  • If the problem continues, you can try with the following command:

cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/NTAuthenticationProviders “Negotiate,NTLM”

  1. Other errors can be caused by a previous or existing installation of Sharepoint in the same website.

Resources used to build this guide and where you can get more help:

12 thoughts on “ESB Toolkit Management Portal Installation Notes (From the field)

  1. I spent almost a week on this issue. After i came across your post, i was able to fix EBS issues

    Thank you so much

    Like

  2. Thank you for the great info.
    I have a question,
    Is it mandatory to run scripts ,Setup_bin.cmd, given in steps 7,9 and 11 ? They look like samples or do they really play a role in ESB runtime ?

    Thanks
    Kishore

    Like

  3. Hi
    One more thing i want to menion is, I’m looking only to set up ESB Portal for exception handling. I’m not really looking for entire ESB like itineraries

    Like

  4. Hi DWight,

    Great post. You saved me all the headaches in troubleshooting and getting ESB Management Portal up and running. Keep it up.

    Cheers,

    Andy

    Like

  5. There is a ESB 2.0 class room in a box for BizTalk 2006/R2 that cover a lot of esb installation through the lab (no need to do the lab, just read it to know the step).
    All the blogs above is good but this class room in a box has more Power Point and Word doc on how to use ESB. This DVD set is free to customer since it belong to marketing material. Please request from MS.

    Thanks Dwight for a good blog entry.

    Like

  6. Superb post Dwight….it helped me configure and run my ESB management portal in a day!

    We started off on our own running into issues and came across this post, and then things were really smooth.

    Keep it up!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s