“The server encountered a critical failure while trying to access the list of Views.”

Ever came across the below BAM portal errors? You may see below error message in your browser when you try to browse BAM portal.

There can be two possible reason because of which you would see below error message in your browser window and let me explain you both of them one by one.

Password change of the service account used to configure BAM Portal

You would see above error in your browser window if the password of the service account that you used to configure BAM portal got changed. You would also see below error message in your event log as well.

[ConfigurationErrorsException]: Could not create Windows user token from the credentials specified in the config file. Error from the operating   system 'Logon failure: unknown user name or bad password.
' (C:\Program Files (x86)\Microsoft BizTalk Server  2010\BAMPortal\BAMManagementService\web.config line 29)
   at 
  System.Web.Configuration.IdentitySection.InitializeToken() 
   at 
  System.Web.Configuration.IdentitySection.get_ImpersonateToken() 
   at 
  System.Web.Configuration.IdentitySection.ValidateCredentials() 
   at 
  System.Web.Configuration.IdentitySection.GetRuntimeObject()
   at 
  System.Configuration.RuntimeConfigurationRecord.GetRuntimeObjectWithRestrictedPermissions(ConfigurationSectionsection)
   at 
  System.Configuration.RuntimeConfigurationRecord.GetRuntimeObject(Object result)
[ConfigurationErrorsException]: An error occurred executing the configuration section handler for system.web/identity.
   at 
  System.Web.HttpRuntime.FirstRequestInit(HttpContext context) 
   at 
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)
   at
  System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest  wr)
[HttpException]: An error occurred executing the configuration section handler for system.web/identity.
   at 
  System.Web.HttpRuntime.FirstRequestInit(HttpContext context) 
   at 
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)
   at 
  System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
  at 
  System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 
  message, WebResponse response, Stream responseStream, Boolean asyncCall) 
   at 
  System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at 
  Microsoft.BizTalk.Bam.WebServices.ManagementService.BamManagementService.GetViewSummaryForCurrentUser() 
   at
  Microsoft.BizTalk.Bam.Portal.DataAccess.BamDefinition.BuildViewsCollection()
   at 
  Microsoft.BizTalk.Bam.Portal.DataAccess.BamDefinition.EnsureViewsCollection() 
   at 
  Microsoft.BizTalk.Bam.Portal.DataAccess.BamDefinition.get_Views()
   at
  BAMPortal.navbar_ascx.OnPreRender(EventArgs  e)

You use service account at two places to configure BAM portal.
   1. BAM Application Pool account
   2. BAM Management Web Service User

You can change the password for the BAM Application Pool in  IIS but there is no way by which you can change the password for the Web Service account from IIS. Username-Password details for the Web service account gets stored in the below registry location in binary form. So you cannot change it in the registry as well.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server\3.0\BAM\WebServices\Identity\ASPNET_SETREG

So only way to change the password would be to open up the BizTalk configuration wizard and change the password for the account over there. You need to apply the configuration once again after that. Do a IISReset after you apply the configuration and you should be able to see the BAM portal home page without any issues.



Virtual Directory for the BAM Portal Changed

There can be a scenario where you would have changed the default virtual directory of BAM portal in IIS to your custom virtual directory. Now you would try to browse this new virtual directory from the browser window and you would see the above specified error message over there. This is because BAM does not know that you have changed the virtual directory and it expects it to be a default one.  You would also see a “400 : Bad request” error message in your event log.

BAMPortal.navbar_ascx) Void OnPreRender(System.EventArgs):
  System.Net.WebException: The request failed with HTTP status 400: Bad Request.
     at 
  System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean   asyncCall)
     at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
     at 
  Microsoft.BizTalk.Bam.WebServices.ManagementService.BamManagementService.GetViewSummaryForCurrentUser()
     at
  Microsoft.BizTalk.Bam.Portal.DataAccess.BamDefinition.BuildViewsCollection()
     at
  Microsoft.BizTalk.Bam.Portal.DataAccess.BamDefinition.EnsureViewsCollection()
     at
  Microsoft.BizTalk.Bam.Portal.DataAccess.BamDefinition.get_Views()
     at
  BAMPortal.navbar_ascx.OnPreRender(EventArgs e)

Please follow the below steps to fix this error:

  • Open an elevated command prompt and go to the tracking folder (C:\Program Files (x86)\Microsoft BizTalk Server 2006\Tracking) present in the BizTalk installation folder.
  • Run bm.exe get-config -FileName:bamconfig.xml
  • The above command would export BAM configurations and saves it to the bamconfig.xml file.
  • Open up the file and look for the property called “<GlobalProperty Name=”BAMVRoot“>”
  • Change the value specified in this property with the new BAM portal Virtual directory.
  • Reimport the new configuration file with below command:bm.exe update-config -FileName:bamconfig.xml
  • You should be able to browse to the portal now.

I hope this blog post would fix most of your BAM Portal related issues. Please feel free to ask questions in the comments below.

Written By
Yakshit Gohel

Reviewed By
Jainath V R

Microsoft GTSC India