Forum Discussion

LCT's avatar
LCT
Level 6
13 years ago

(Issues) EV OWA 2010 - Exchange 2010 SP2 Rollup 2

Hello All,

I have come across a few posts on this forum regarding people upgrading to Exchange 2010 SP2 and Rollup 2 and your EV OWA is broken.

I upgraded mine to Exchange 2010 SP2 and Rollup 3 today and it broke too so I had a look into it and here's what I have found.

When I enable EV OWA logs I see the following:

21/07/2012 21:40:53 [5208,1] [EVContext::LoadHiddenSettings] Exception loading hidden settings:
21/07/2012 21:40:53 [5208,1] [EVContext::LoadHiddenSettings] Microsoft.Exchange.WebServices.Data.ServiceRequestException: The response received from the service didn't contain valid XML. ---> System.Xml.XmlException: Root element is missing.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlCharCheckingReader.Read()
at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read()
at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read(XmlNodeType nodeType)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadXmlDeclaration(EwsServiceXmlReader reader)
--- End of inner exception stack trace ---
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadXmlDeclaration(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadSoapFault(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ProcessWebException(WebException webException)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(HttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecute()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems[TItem](IEnumerable`1 parentFolderIds, SearchFilter searchFilter, String queryString, ViewBase view, Grouping groupBy, ServiceErrorHandling errorHandlingMode)
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems(FolderId parentFolderId, SearchFilter searchFilter, ItemView view)
at Symantec.EnterpriseVault.Owa.ExchangeStoreAccess.EWSBase.GetEVSettings()
at Symantec.EnterpriseVault.Owa.Core.EVContext.LoadHiddenSettings(Log oLog, Boolean brefresh)
21/07/2012 21:40:53 [5208,1] [EVContext::LoadHiddenSettings] Using default settings
21/07/2012 21:40:53 [5208,1] [EVContext::ResetHiddenSettings] Resetting hidden settings to defaults
21/07/2012 21:40:53 [5208,1] [EVContext::LogHiddenSettings] Mailbox Settings loaded at: 01 January 0001, 00:00:00
21/07/2012 21:40:53 [5208,1] [EVContext::LogHiddenSettings] Enabled for archiving: Never Enabled

21/07/2012 21:40:53 [5208,1] [EVContext::Initialise] EVContext intialised at 21/07/2012 21:40:53
21/07/2012 21:40:53 [5208,1] [EVContext::Initialise] Hidden settings loaded at 01/01/0001 00:00:00
21/07/2012 21:40:53 [5208,1] [EVContext::IsValidBrowser] Checking browser...
21/07/2012 21:40:53 [5208,1] [EVContext::IsValidBrowser] User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
21/07/2012 21:40:53 [5208,1] [EVContext::IsValidBrowser] Checking for MSIE in user agent
21/07/2012 21:40:53 [5208,1] [EVContext::IsValidBrowser] Returning: True
21/07/2012 21:40:53 [5208,1] [Id::OwaId] Not enough information to be able to convert to OwaId
21/07/2012 21:40:53 [5208,1] [RequestProcessor::ProcessRequest] Archive Mailbox: False
21/07/2012 21:40:53 [5208,1] [ImpersonationManager:StopImpersonation] Stopped impersonation
21/07/2012 21:40:53 [5208,1] Request processing finished

The event logs on my CAS server I found the following:

Log Name: Application
Source: System.ServiceModel 3.0.0.0
Date: 21/07/2012 21:34:35
Event ID: 3
Task Category: WebHost
Level: Error
Keywords: Classic
User: SYSTEM
Computer: CASServer.domain.local
Description:
WebHost failed to process a request. Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/8628710 Exception: System.ServiceModel.ServiceActivationException: The service '/EWS/exchange.asmx' cannot be activated due to an exception during compilation. The exception message is: Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.. ---> System.NotSupportedException: Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.
at System.ServiceModel.Channels.HttpChannelListener.ApplyHostedContext(VirtualPathExtension virtualPathExtension, Boolean isMetadataListener)
at System.ServiceModel.Channels.HttpsChannelListener.ApplyHostedContext(VirtualPathExtension virtualPathExtension, Boolean isMetadataListener)
at System.ServiceModel.Channels.HttpsTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)
at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
at Microsoft.Exchange.Services.Wcf.MessageEncoderWithXmlDeclarationBindingElement.BuildChannelListener[TChannel](BindingContext context)
at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)
at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener& result, Boolean supportContextSession)
at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener& result)
at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
at System.ServiceModel.ServiceHostBase.InitializeRuntime()
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
--- End of inner exception stack trace ---
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath) Process Name: w3wp Process ID: 4988

Cause:

When you perform a service pack or/and rollup upgrade on your exchange CAS server, the process may change or/and reset all your virtual directories authentication settings.

Solution:

The solution for me was to enable Anonymous authentication on the EWS virtual dirctory on the CAS server as well as ensuring the Basic Authentication and Windows Authentication are enabled and then perform an iisreset.

Note: You should check all the settings and authentication configurations on the virtual directories on the CAS servers make a note of them before the upgrade, check them after the upgrade. As far as I can see, Exchange 2010 SP2, any rolup, EWS virtual directory requires Anonymous authentication for EV OWA to work (according to the error reports). This may be due to changes in Exchange 2010 SP2. If you require Anonymous authentication disabled for EWS virtual directory on your CAS server for whatever reason and you have a dispute regarding this then you should log a case with Symantec and Microsoft.

Please test things before you apply to your production. :-)

Hope this helps.

  • As a matter of interest, did you reinstall the EV OWA extensions or not? I mean would that fix it as well?

  • yeah, as a formality I did...but didn't fix the issue....I also noticed a minor bug....the EV OWA log still shows my exchange server is Exchange 2010 SP1 rather Exchange 2010 SP2....if you enable EV OWA log you will see it Rob. :-)