Translate

quarta-feira, 28 de agosto de 2013

Erro Help Server AX2012 R2.

Tarde pessoal!

Hoje vou compartilhar com vocês um erro que enfrentei em um cliente onde estou implementando o AX2012 R2.

Este erro ocorreu quando tentei acessar o menu de ajuda do AX2012 R2 logo após instalar o componente de Help Server.

Veja o erro na imagem abaixo:




Ao verificar os logs do Event Viewer eu localizei a seguinte entrada:

O que mais me chamou a atenção, e me ajudou a resolver o problema esta destacado em vermelho.

Event code: 3008
Event message: A configuration error has occurred.
Event time: 28/08/2013 13:38:18
Event time (UTC): 28/08/2013 16:38:18
Event ID: de1252f8c69748b49b6fbf4581523a36
Event sequence: 1
Event occurrence: 1
Event detail code: 0

Application information:
    Application domain: /LM/W3SVC/1/ROOT/DynamicsAX6HelpServer-5-130221814986138089
    Trust level: Full
    Application Virtual Path: /DynamicsAX6HelpServer
    Application Path: C:\inetpub\wwwroot\DynamicsAX6HelpServer\
    Machine name: SERVER

Process information:
    Process ID: 4544
    Process name: w3wp.exe
    Account name: DOMINIO\REPORTSERVICEACCOUNT

Exception information:
    Exception type: ConfigurationErrorsException
    Exception message: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)
   at System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement)
   at System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement)
   at System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)
   at System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)
   at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
   at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
   at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
   at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
   at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
   at System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
   at System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)

Request information:
    Request URL: http://server/DynamicsAX6HelpServer/HelpService.svc
    Request path: /DynamicsAX6HelpServer/HelpService.svc
    User host address: fe80::68eb:6fca:3b27:2ee9/DynamicsAX6HelpServer
    User: 
    Is authenticated: False
    Authentication Type: 
    Thread account name: DOMINIO\REPORTSERVICEACCOUNT

Custom event details:

A possivel causa para este problema:

Inicialmente este servidor seria apenas um servidor de AOS, por esta razão instalamos apenas a role de "Application Server" que instala o .NET Framework 3.5. ao executar o setup do AX para instalar o AOS também foi instalado o .NET Framweork 4.0. Em um segundo momento foi decidido que este servidor também viria a ser o Help Server do sistema e por esta razão foi necessário instalar a Role de "Web Server IIS" neste servidor.

Com todos os componentes acima instalados exatamente na ordem acima citada o setup do AX foi executado e o componente de Help Server do AX foi instalado sem qualquer problema. Mas ao tentar acessar o conteudo de ajuda o erro da imagem acima foi exibido e o log já mencionado foi gerado no Event Viewer.

A solução para o problema:

Executei o comando utilizando o "CMD" como administrador:

aspnet_regiis.exe /iru

Este comando atualizou o application pool utilizado pelo site do Help Server para utilizar o
.NET Framework 4.0.
Após executar este comando o Help Server passou a ser acessado normalmente.

Creio que devido a sequencia na instalação das Roles de Application Server, Web Server IIS e também a instalação dos .NET's tenha causado algum problema no registro do .NET Framework 4.0 no IIS.

Para evitar este problema execute a instalação dos componentes na seguinte ordem:

  1. Role Web Server IIS
  2. Role "Application Server" (.NET 3.5)
  3. .NET Framework 4.0

Espero que esta dica ajude!