Friday, July 10, 2009

ESB Toolkit Portal Install without Visual Studio or BizTalk

I've been trying to get the ESB Toolkit Management Portal to install on a machine without BizTalk or Visual Studio. While I have discovered that out of the box you cannot install the Portal without BizTalk installed, I have also learned several things about the installation of the portal in general. I figured I would post my findings in several blog posts.

What was installed:

Windows Server 2008 Enterprise Edition - 64 bit

Roles: UDDI (all defaults except require SSL), IIS (all defaults)

Step 1: Install .NET Framework 3.5 SP1

http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en

Step 2: Install the BizTalk ESB Toolkit 2.0 (BizTalk ESB Toolkit 2.0-x64.msi)

Step 3: Install SQL Server CLR Types

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en

Step 4: Install Microsoft SQL Server 2008 Management Objects

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en

Step 5: Install Windows PowerShell 1.0

In Server Manager->Features either verify Windows PoweShell is installed or add the PowerShell feature. The end result show look like the following:







Step 6: Run the ESBConfigurationTool located at C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.0\Bin

*At this point I did install SQL Server 2008 on the same machine. Therefore, I am not sure of any failures when applying the configurations in the ESBCofigurationTool. I did however, install as an instance, not the default.

Step 7: Configure the ESBConfigurationTool->Exception Management Database

· BizTalk Server Administrators must have dbcreate access.

Step 8: Configure the ESBConfigurationTool->Exception Management Web Service

User account must be a part of the BizTalk Isolated Host Users group.

Step 8: Configure the Itinerary Database

Step 9: Install Core Web Services

Step 11: Run the PowerShell from the Start Menu. Run set-executionpolicy with parameter unrestricted.

Step 12: Unzip the ESBSource zip file.

Step 13: In PowerShell, browse to the ESBSource folder. Run Management_Install.ps1 – there will be errors, this is okay.

Step 14: Add dlls

Add the following dls to the GAC from the C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit 2.0\Bin folder:

Microsoft.Practices.ESB.BizTalkOperations.dll

Microsoft.Practices.ESB.Exception.Management.dll


Add the following dlls to the GAC from the BizTalk Installation folder (Msi\Program Files):


Microsoft.BizTalk.Operations

microsoft.biztalk.webservices.serverproxy


Add the following dlls to the GAC from the BizTalk Installation folder (Msi\Program Files\Developer Tools):


Microsoft.BizTalk.ExplorerOM


Step 15: Restart IIS and verify that BizTalkOperations web service (http://localhost/ESB.BizTalkOperationsService/Operations.asmx) works.


Step 16: Verify that the UDDI Service works: http://localhost/ESB.UDDI.Service/UDDIService.asmx.

Step 17: Open the web.config for the ExceptionServices web service: http://localhost/ESB.Exceptions.Service/ExceptionService.svc

Change the ESB Database connection to:

<add name="EsbExceptionDbConnectionString" connectionString="Integrated Security=SSPI;Data Source=sql Server;Initial Catalog=EsbExceptionDb" providerName="System.Data.SqlClient" />


Verify that the web service works.

Step 18: Open the web.config for the BamService web service http://localhost/ESB.BAM.Service/BAMService.svc:

Change the BAM DB connection string.

Verify that the BAM Service works.

Step 19: Verify that the ProcessItinerary service works http://localhost/ESB.ItineraryServices.WCF/ProcessItinerary.svc.

Step 20: Open the web.config under the ESBPortal folder.

Change the following connection string values. Comment out the AdminDatabaseServer and uncomment the EsbExceptionDb connectionstring. Change the value of the EsbExceptionDb connectionstring:

add name="AdminDatabaseServer" connectionString="Network Library=dbmssocn;Data Source=(local);Integrated Security=True;Initial Catalog=ESBAdmin;" providerName="System.Data.SqlClient"

add name="EsbExceptionDb" connectionString="Data Source=biztalk2k802;Initial Catalog=EsbExceptionDb;Integrated Security=True;Application Name=Microsoft.Practices.ESB.Portal"

To

add name="AdminDatabaseServer" connectionString="Network Library=dbmssocn;Data Source=(local);Integrated Security=True;Initial Catalog=ESBAdmin;" providerName="System.Data.SqlClient"

add name="EsbExceptionDb" connectionString="Data Source=sql server;Initial Catalog=EsbExceptionDb;Integrated Security=True;Application Name=Microsoft.Practices.ESB.Portal"

Note: If you get errors on the portal, I recommend changing the tag in the web.config until you get it resolved:

From: customErrors mode="On" defaultRedirect="ErrorDisplay.htm"

To: customErrors mode="Off"

I got the point where I was getting the error:

Error 204999: Could not locate the BizTalk Registry key. The service must be deployed to a BizTalk Server. Reg Key Lookup 'SOFTWARE\Microsoft\BizTalk Server\3.0\Administration'.

The BizTalkOperations service uses the BizTalk.OM to get the list of applications in the BizTalk Server Group. The portal should be changed to take the Server Name and Database name of the BizTalk Managment Database and get the applications using the connection string. I will try to write the code to make this change and post it, but it will be later...

4 comments:

Dipesh A. said...

Hi Elizabeth,

Did you fix this issue?

One question - Is it neccesary to install sql server 2008 on the same box? Can we not make esb point to a "another" sql server?

Anonymous said...

Elizabeth -

After trying this, I am still running into an issue where the portal is throwing an error:

Exception information:
Exception type: HttpException
Exception message: Could not load type 'Microsoft.Practices.ESB.Portal.Global'.

I have had no success in tracking this phantom dll down... Any insight on this, that you could share? Thanks!

Elizabeth Graham said...

Somehow I missed these comments, so sorry for answering these late.

First, yes you can install SQL on a seperate box. In fact that is recommended. I was installing on a Virtual Machine and not for any use other than development. The SQL Server setting is stored in the esb.config file under the ESB Toolkit installation directory.

Second, while I have not run into the Microsoft.Practices. ESB.Portal.Global dll, I have found that there are some dlls in the Core.MSI file that are not in the bin directory. You may want to try running the MSI to put the dlls into the GAC. Sorry I can't be of more help.

Raj said...

Did any one else run into an issue with

Exception message: Could not load type 'Microsoft.Practices.ESB.Portal.Global'.

I have no luck with this error.
Any leads would be very helpful.