# NullReference Exception no Latromi Server Installer

**URL:** <https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414>\
**Category:** Changelog\
**Tags:** erro, infra\
**Created:** [Fevereiro 11, 2025, 1:34am UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414 "2025-02-11T01:34:53Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![daniel.giacomelli](https://community.latromi.com.br/user_avatar/community.latromi.com.br/daniel.giacomelli/32/1476_2.png) [@daniel.giacomelli](https://community.latromi.com.br/u/daniel.giacomelli)\
**Post date:** [Fevereiro 11, 2025, 1:34am UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414/1 "2025-02-11T01:34:53Z")

</div>

## Problema

Ao tentar instalar o **Latromi Server** , em um novo computador, foi observado o seguinte erro:

 ![image](https://community.latromi.com.br/uploads/default/original/2X/5/59c271f1c1157b90805d7e3de886c58f7c0d594c.png)

Transcrição do erro:

> Não foi possível carregar os sites do host. O servidor não conseguiu processar a solicitação devido a um erro interno. Para obter mais informações sobre o erro, ative IncludeExceptionDetailInFaults (a partir da classe ServiceBehaviorAttribute ou do comportamento de configuração ) no servidor para enviar as informações de exceção de volta para o cliente ou ative o rastreamento de acordo com a documentação do Microsoft .NET Framework SDK e examine os logs de rastreamento do servidor.

## Diagnóstico

### Arquivos de Log

Nos arquivos de log do _Latromi Installation Service_, consta as seguintes informações:

```txt
Data/Hora Tipo Origem Categoria ID Tempo Mensagem
===========================================================================================================================================================================================================================================
2025-02-10 22:20:29 Info LatromiInstSVC -- -- -- Programa iniciado em 'C:\Program Files (x86)\LATROMI\Installation Service\LatromiInstSVC.exe'.
2025-02-10 22:20:29 Debug LatromiInstSVC -- -- -- Interpretando linha de comando: 
2025-02-10 22:20:29 Debug LatromiInstSVC -- -- -- Chave de registro criada: HKEY_LOCAL_MACHINE\SOFTWARE\LATROMI\Path Mapping\Folders
2025-02-10 22:20:29 Debug LatromiInstSVC -- -- -- Valor de registro criado: Installation Service=C:\Program Files (x86)\LATROMI\Installation Service
2025-02-10 22:20:29 Info LatromiInstSVC -- -- -- Serviço 'LatromiInstSVC': Iniciando... [Thread 4]
2025-02-10 22:20:29 Info LatromiInstSVC -- -- -- Hospedando o serviço 'AppUpdater' em net.tcp://localhost:57249/LatromiInstallSVC/AppUpdater/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Hospedando o serviço 'AppUninstaller' em net.tcp://localhost:57249/LatromiInstallSVC/AppUninstaller/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Hospedando o serviço 'AppInstaller' em net.tcp://localhost:57249/LatromiInstallSVC/AppInstaller/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Hospedando o serviço 'InstallerCommons' em net.tcp://localhost:57249/LatromiInstallSVC/InstallerCommons/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Hospedando o serviço 'WebServerManager' em net.tcp://localhost:57249/LatromiInstallSVC/WebServerManager/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Hospedando o serviço 'DataBaseManager' em net.tcp://localhost:57249/LatromiInstallSVC/DataBaseManager/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Hospedando o serviço 'BackgroundUpdater' em net.tcp://localhost:57249/LatromiInstallSVC/BackgroundUpdater/
2025-02-10 22:20:30 Info LatromiInstSVC -- -- -- Serviço 'LatromiInstSVC': Iniciado.
2025-02-10 22:20:40 Info LatromiInstSVC -- -- -- Iniciando atualizações automáticas... [Thread 5]

2025-02-10 22:20:40 Info LatromiAutoUpdate -- -- -- Serviço de atualização automática iniciado.
2025-02-10 22:20:40 Info LatromiAutoUpdate -- -- -- Serviço de exclusão de versões anteriores iniciado.
2025-02-10 22:20:40 Debug LatromiAutoUpdate -- -- -- Os parâmetro foram salvos no registro do Windows.
2025-02-10 22:20:40 Error LatromiAutoUpdate -- -- -- System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto. em LATROMI.Install.AutoUpdateSettings.Load() em LATROMI.AutoUpdate.AutoUpdateService.CheckDefaultUpdates() em LATROMI.AutoUpdate.AutoUpdateService.StartUpdate() [System.NullReferenceException] Message: Referência de objeto não definida para uma instância de um objeto. Source: LATROMI.AutoUpdate   
    System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.
       em LATROMI.Install.AutoUpdateSettings.Load()
       em LATROMI.AutoUpdate.AutoUpdateService.CheckDefaultUpdates()
       em LATROMI.AutoUpdate.AutoUpdateService.StartUpdate()

    em LATROMI.AutoUpdate.AutoUpdateService.StartUpdate()
       em LATROMI.AutoUpdate.AutoUpdateService.Start()
       em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       em System.Threading.ThreadHelper.ThreadStart()

2025-02-10 22:20:40 Info LatromiInstSVC -- -- -- Procurando pastas que podem ser excluídas...
2025-02-10 22:20:40 Info LatromiInstSVC -- -- -- Iniciando exclusão de versões anteriores.
    Nenhuma pasta encontrada.

2025-02-10 22:20:40 Info LatromiInstSVC -- -- -- Exclusão de versões anteriores concluída.

```

### Detalhes Internos do Erro

Conforme sugerido na mensagem de erro inicial, ao habilitar o parâmetro [includeExceptionDetailInFaults](https://learn.microsoft.com/pt-br/dotnet/api/system.servicemodel.servicebehaviorattribute.includeexceptiondetailinfaults?view=netframework-4.8) no arquivo `LatromiInstSVC.exe.config`, a verdadeira mensagem de erro é apresentada:

 ![image](https://community.latromi.com.br/uploads/default/original/2X/4/478b74e24fa65088b928d2be13f0a696f93cf422.png)

Detalhes do erro no arquivo de Log da pasta `C:\ProgramData\LATROMI\LatromiServerSetup\Log`:

```nohighlight
2025-02-12 00:20:21 Info LatromiServerSetup -- -- -- Programa iniciado em 'C:\Users\Dan\Downloads\latromi-server-setup.exe'.
2025-02-12 00:20:21 Debug LatromiServerSetup -- -- -- Interpretando linha de comando: 
2025-02-12 00:20:24 Error LatromiServerSetup -- -- -- System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Falha na recuperação de fábrica de classes COM do componente com CLSID {2B72133B-3F5B-4602-8952-803546CE3344} devido ao seguinte erro: 80040154 Classe não registrada (Exceção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). (O Detalhe da Falha é igual a ExceptionDetail, provavelmente criado por IncludeExceptionDetailInFaults=true, cujo valor é: System.Runtime.InteropServices.COMException: Falha na recuperação de fábrica de classes COM do componente com CLSID {2B72133B-3F5B-4602-8952-803546CE3344} devido ao seguinte erro: 80040154 Classe não registrada (Exceção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). em System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) em System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType) em System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj) em System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) em System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) ...). [System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]] Message: Falha na recuperação de fábrica de classes COM do componente com CLSID {2B72133B-3F5B-4602-8952-803546CE3344} devido ao seguinte erro: 80040154 Classe não registrada (Exceção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). Source: mscorlib   
    System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Falha na recuperação de fábrica de classes COM do componente com CLSID {2B72133B-3F5B-4602-8952-803546CE3344} devido ao seguinte erro: 80040154 Classe não registrada (Exceção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). (O Detalhe da Falha é igual a ExceptionDetail, provavelmente criado por IncludeExceptionDetailInFaults=true, cujo valor é:
    System.Runtime.InteropServices.COMException: Falha na recuperação de fábrica de classes COM do componente com CLSID {2B72133B-3F5B-4602-8952-803546CE3344} devido ao seguinte erro: 80040154 Classe não registrada (Exceção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
       em System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
       em System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
       em System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)
       em System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
       em System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
      ...).

    em LATROMI.SetupUI.WinForms.InstallerSettingsDialog.LoadWebSites()
       em LATROMI.SetupUI.WinForms.InstallerSettingsDialog.SetupDialog()
       em LATROMI.SetupUI.WinForms.InstallerSettingsDialog.this_Shown(Object sender, EventArgs e)
       em System.Windows.Forms.Form.OnShown(EventArgs e)
       em System.Windows.Forms.Form.CallShownEvent()
       em System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
       em System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
       em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       em System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
       em System.Windows.Forms.Control.InvokeMarshaledCallbacks()
       em System.Windows.Forms.Control.WndProc(Message& m)
       em System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       em System.Windows.Forms.ContainerControl.WndProc(Message& m)
       em System.Windows.Forms.Form.WndProc(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       em System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       em System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       em System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       em System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       em System.Windows.Forms.Application.RunDialog(Form form)
       em System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
       em System.Windows.Forms.Form.ShowDialog()
       em LATROMI.SetupUI.Facade.StartMultiInstaller(String setupCopyPath, Action`1 completeAction)
       em LATROMI.ServerSetup.Program.Install()
       em LATROMI.ServerSetup.Program.Main(String[] args)

```

Consultando a classe `{2B72133B-3F5B-4602-8952-803546CE3344}` pelo PowerShell em 2 computadores diferentes (onde o serviço funciona sem erros), o resultado é este:

```powershell
Get-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\CLSID\{2B72133B-3F5B-4602-8952-803546CE3344}"

(default) : Microsoft.ApplicationHost.WritableAdminManager
AppID : {9fa5c497-f46d-447f-8011-05d03d7d7ddc}
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\CLSID\{2B72133B-3F5B-4602-8952-803546CE3344}
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\CLSID
PSChildName : {2B72133B-3F5B-4602-8952-803546CE3344}
PSProvider : Microsoft.PowerShell.Core\Registry

```

## Informações do Ambiente

O computador onde o erro ocorreu, tinha as seguintes características:

- Windows 10 Pro, com todas as atualizações
- .NET 4.8 instalado
- Sem IIS Instalado

## Solução

A solução exige correção no Latromi. É necessário encontrar a origem do erro (método `LATROMI.Install.AutoUpdateSettings.Load()`) e aplicar correção.

---

<div class="post-metadata">

**Author:** ![daniel.giacomelli](https://community.latromi.com.br/user_avatar/community.latromi.com.br/daniel.giacomelli/32/1476_2.png) [@daniel.giacomelli](https://community.latromi.com.br/u/daniel.giacomelli)\
**Post date:** [Fevereiro 12, 2025, 2:45am UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414/2 "2025-02-12T02:45:22Z")

</div>

Adicionei mais informações ao **Diagnóstico** , com detalhes internos do erro.

---

<div class="post-metadata">

**Author:** ![daniel.giacomelli](https://community.latromi.com.br/user_avatar/community.latromi.com.br/daniel.giacomelli/32/1476_2.png) [@daniel.giacomelli](https://community.latromi.com.br/u/daniel.giacomelli)\
**Post date:** [Fevereiro 12, 2025, 4:06am UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414/3 "2025-02-12T04:06:09Z")

</div>

**Microsoft.ApplicationHost.WritableAdminManager** é um componente que faz parte da API do **Microsoft.Web.Administration** , usada para gerenciar configurações do IIS por meio do `ApplicationHost.config`.

Parece que esse componente está no arquivo `wmsvc.dll`, que é embarcada apenas no **IIS Completo**.

Se não encontrar uma solução de carregar esse componente, a sugestão é deixar de usar **Microsoft.Web.Administration** para o **IIS Express** , alterando o arquivo `applicationhost.config` diretamente via C# nestes casos, ou usar linhas de comando do `iisexpress.exe`.

---

<div class="post-metadata">

**Author:** ![Diego\_Ramos](https://community.latromi.com.br/user_avatar/community.latromi.com.br/diego_ramos/32/1819_2.png) [@Diego\_Ramos](https://community.latromi.com.br/u/Diego_Ramos)\
**Post date:** [Fevereiro 18, 2025, 7:24pm UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414/4 "2025-02-18T19:24:11Z")

</div>

Correção efetuada.

Aguardando liberação de versão.

---

<div class="post-metadata">

**Author:** ![Diego\_Ramos](https://community.latromi.com.br/user_avatar/community.latromi.com.br/diego_ramos/32/1819_2.png) [@Diego\_Ramos](https://community.latromi.com.br/u/Diego_Ramos)\
**Post date:** [Fevereiro 26, 2025, 1:43pm UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414/5 "2025-02-26T13:43:39Z")

</div>

Correção liberada na versão [Installation Service Versão 1.0.185](https://community.latromi.com.br/t/installation-service-versao-1-0-185/1410).

---

<div class="post-metadata">

**Author:** ![system](https://community.latromi.com.br/user_avatar/community.latromi.com.br/system/32/1700_2.png) [@system](https://community.latromi.com.br/u/system)\
**Post date:** [Março 5, 2025, 1:44pm UTC](https://community.latromi.com.br/t/nullreference-exception-no-latromi-server-installer/1414/6 "2025-03-05T13:44:18Z")

</div>

Este tópico foi fechado automaticamente 7 dias depois da última resposta. Novas respostas não são mais permitidas.
