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 🙂
-
On a development environment, with MS Visual Studio 2008 installed:
-
Install Enterprise Library 4.1 ( http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en )
-
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 )
-
ExtractESBSource.zip(found in theProgram Files\Microsoft BizTalk ESB Toolkit 2.0folder) to a new folder.
-
Inside this folder, go to the Keys folder and create aMicrosoft.Practices.ESB.snkfile, by following the instructions in theReadme.txtfile.
-
Go to theSource\Samples\Management Portal\ESB.Portalfolder and open theESB.Portal.slnsolution file.
-
Select Debug/Release in the solution configuration to choose the type of installation file to build.
-
Right click on the ESB.Portal.Setup project, and click on Rebuild.
-
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.
-
On your server (with Windows 2003 or 2008) or on a development environment:
-
You need to install Windows 2003/2008 SDK in case you don’t have Visual Studio installed (to get gacutil.exe file installed).
-
-
Install the ESB Toolkit package by following the instructions in the ESB Toolkit documentation.
-
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.
-
In a 32-bit Environment:
-
If running Windows Server 2008:
-
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
}
-
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
}
-
Open up a Command Prompt (Start Menu => Accessories => Command Prompt, run it as administrator)
-
Run the following command:
Powershell Set-ExecutionPolicy unrestricted
-
In the same command prompt, go to theSource\Samples\DynamicResolution\Install\Scriptsfolder.
-
Run the following command and type in the required credentials:
Setup_bin.cmd
-
In the same command prompt, go to theSource\Samples\Itinerary\Install\Scriptsfolder.
-
Run the following command:
Setup_bin.cmd
-
In the same command prompt, go to theSource\Samples\MultipleWebServices\Install\Scriptsfolder.
-
Run the following command:
Setup_bin.cmd
-
In a 64-bit environment:
-
If running Windows Server 2008:
-
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
}
-
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
}
-
All the powershell scripts must run in 32-bit mode, asMicrosoft.Biztalk.ExplorerOMcannot be run in a 64-bit process.
-
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
-
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
}
-
OpenSource\Samples\DynamicResolution\Install\Scripts\DynamicResolution_Install.ps1
-
Open up a Command Prompt (Start Menu => Accessories => Command Prompt, run it as administrator)
-
Run the following command:
%windir%\syswow64\windowspowershell\v1.0\powershell.exe Set-ExecutionPolicy unrestricted
-
In the same command prompt, go to theSource\Samples\DynamicResolution\Install\Scriptsfolder.
-
Run the following command and type in the required credentials:
Setup_bin.cmd
-
In the same command prompt, go to theSource\Samples\Itinerary\Install\Scriptsfolder.
-
Run the following command:
Setup_bin.cmd
-
In the same command prompt, go to theSource\Samples\MultipleWebServices\Install\Scriptsfolder.
-
Run the following command:
Setup_bin.cmd
-
Open Internet Information Services Manager and create a new application pool, namedEsbPortalNetworkAppPooland configure it to run underNetwork Serviceaccount.
-
OpenSource\Samples\Management Portal\SQL\ESB.Administration.Database.sqlin SQL Server Management Studio, and connect to the Biztalk Database Server.
-
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.
-
Now run that script in the server, and theESBAdmindatabase will be deployed.
-
-
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.
-
Go to the website directory (for Default Website, go toc:\inetpub\wwwroot), and find theESB.Portalfolder. Open theweb.configfile and do the following:
-
Modify theAdminDatabaseServerconnection string to point to the right database.
-
Uncomment and modify theEsbExceptionDbconnection string to point to the right database.
-
Remove or changenetwork driverpart of the connection strings if you don’t intend to connect to the databases through TCP/IP.
-
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.
-
-
Now find theweb.configfor theESB.Exceptions.Serviceand theESB.BAM.Serviceapplications and do the same connection string modifications.
-
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.
-
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.
-
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.
-
If you get a “401: Unauthorized” error:
-
Edit theweb.configforESB.Portaland replace<transport clientCredentialType=”Windows” />with<transport clientCredentialType=”Ntlm” />in thesystem.serviceModel/bindings/webHttpBindingnode.
-
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
-
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.
-
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
-
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”
-
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:
-
Running scripts that only work under 32bit cleanly in 64bit PowerShell ( http://www.viveksharma.com/TECHLOG/archive/2008/12/03/running-scripts-that-only-work-under-32bit-cleanly-in-64bit.aspx )
-
Installing and Configuring ESB Toolkit 2.0 on Windows Server 2008 ( http://www.preetham-reddy.com/2009/08/installing-and-configuring-esb-toolkit.html )
-
ESB.Portal – Bad request 400 ( http://social.msdn.microsoft.com/Forums/en/biztalkesb/thread/1fb510a8-9f4b-4e1e-9261-3273b037786c )
-
How to configure IIS to support both the Kerberos protocol and the NTLM protocol for network authentication ( http://support.microsoft.com/?scid=kb%3Ben-us%3B215383 )
-
ESB toolkit 2.0 and BizTalk Server 2006 R2 ( http://mmcrblog.wordpress.com/2009/08/24/esb-toolkit-2-0-and-biztalk-server-2006-r2/ )
-
Troubleshooting Portal Installation and Configuration ( http://msdn.microsoft.com/en-us/library/ee236738%28BTS.10%29.aspx )
-
ESB Error: Application. Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts… ( http://esgraham.blogspot.com/2009/07/esb-error-application-security-settings.html )
-
ESB Toolkit 2.0 – Configuring Exception Management Portal ( http://blogs.digitaldeposit.net/saravana/post/2009/06/10/ESB-Toolkit-20-Configuring-Exception-Management-Portal.aspx )
-
ESB Error: The remote server returned an error: (401) Unauthorized ( http://esgraham.blogspot.com/2009/07/esb-error-remote-server-returned-error.html )
I spent a lot of time fighting with ESB Toolkit Management Portal, so thanks a lot Dwight, very good and useful post !
LikeLike
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
LikeLike
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
LikeLike
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
LikeLike
Hey, I have a post for installing the ESB Toolkit in a multi-server environment. If you have a chance look at the article and let me know if you see gaps. Some of the information in the blog was borrowed from this post.
http://tjthompson5150.blogspot.com/2010/06/esb-toolkit-20-multi-server_14.html
LikeLike
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
LikeLike
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.
LikeLike
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!
LikeLike
It’s hard to find educated people for this topic, however, you seem like you know what you’re talking about! Thanks
LikeLike